1c comment section 2c 3c fm035 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 variables 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 variable 16c (2) integer variable * integer variable * integer constant 17c integer variable * integer constant * integer variable 18c integer constant * integer variable * integer variable 19c (3) same as (2) but with parentheses to group elements. 20c 21c references 22c american national standard programming language fortran, 23c x3.9-1978 24c 25c section 4.3, integer type 26c section 4.3.1, integer constant 27c section 6.1, arithmetic expressions 28c section 10.1, arithmetic assignment statement 29c 30c ********************************************************** 31c 32c a compiler validation system for the fortran language 33c based on specifications as defined in american national standard 34c programming language fortran x3.9-1978, has been developed by the 35c federal cobol compiler testing service. the fortran compiler 36c validation system (fcvs) consists of audit routines, their related 37c data, and an executive system. each audit routine is a fortran 38c program, subprogram or function which includes tests of specific 39c language elements and supporting procedures indicating the result 40c of executing these tests. 41c 42c this particular program/subprogram/function contains features 43c found only in the subset as defined in x3.9-1978. 44c 45c suggestions and comments should be forwarded to - 46c 47c department of the navy 48c federal cobol compiler testing service 49c washington, d.c. 20376 50c 51c ********************************************************** 52c 53c 54c 55c initialization section 56c 57c initialize constants 58c ************** 59c i01 contains the logical unit number for the card reader. 60 i01 = 5 61c i02 contains the logical unit number for the printer. 62 i02 = 6 63c system environment section 64c 65cx010 this card is replaced by contents of fexec x-010 control card. 66c the cx010 card is for overriding the program default i01 = 5 67c (unit number for card reader). 68cx011 this card is replaced by contents of fexec x-011 control card. 69c the cx011 card is for systems which require additional 70c fortran statements for files associated with cx010 above. 71c 72cx020 this card is replaced by contents of fexec x-020 control card. 73c the cx020 card is for overriding the program default i02 = 6 74c (unit number for printer). 75cx021 this card is replaced by contents of fexec x-021 control card. 76c the cx021 card is for systems which require additional 77c fortran statements for files associated with cx020 above. 78c 79 ivpass=0 80 ivfail=0 81 ivdele=0 82 iczero=0 83c 84c write page headers 85 write (i02,90000) 86 write (i02,90001) 87 write (i02,90002) 88 write (i02, 90002) 89 write (i02,90003) 90 write (i02,90002) 91 write (i02,90004) 92 write (i02,90002) 93 write (i02,90011) 94 write (i02,90002) 95 write (i02,90002) 96 write (i02,90005) 97 write (i02,90006) 98 write (i02,90002) 99c 100c test section 101c 102c arithmetic assignment statement 103c 104c test 430 through test 441 contain two integer variables and 105c operator * in an arithmetic expression. 106c the form is iv = iv * iv 107c 108c test 430 through test 433 - two positive variables 109c 110 4301 continue 111 ivtnum = 430 112c 113c **** test 430 **** 114c 115 if (iczero) 34300, 4300, 34300 116 4300 continue 117 ivon01 = 2 118 ivon02 = 3 119 ivcomp = ivon01 * ivon02 120 go to 44300 12134300 ivdele = ivdele + 1 122 write (i02,80003) ivtnum 123 if (iczero) 44300, 4311, 44300 12444300 if (ivcomp - 6) 24300,14300,24300 12514300 ivpass = ivpass + 1 126 write (i02,80001) ivtnum 127 go to 4311 12824300 ivfail = ivfail + 1 129 ivcorr = 6 130 write (i02,80004) ivtnum, ivcomp ,ivcorr 131 4311 continue 132 ivtnum = 431 133c 134c **** test 431 **** 135c 136 if (iczero) 34310, 4310, 34310 137 4310 continue 138 ivon01 = 13 139 ivon02 = 11 140 ivcomp = ivon01 * ivon02 141 go to 44310 14234310 ivdele = ivdele + 1 143 write (i02,80003) ivtnum 144 if (iczero) 44310, 4321, 44310 14544310 if (ivcomp - 143) 24310,14310,24310 14614310 ivpass = ivpass + 1 147 write (i02,80001) ivtnum 148 go to 4321 14924310 ivfail = ivfail + 1 150 ivcorr = 143 151 write (i02,80004) ivtnum, ivcomp ,ivcorr 152 4321 continue 153 ivtnum = 432 154c 155c **** test 432 **** 156c 157 if (iczero) 34320, 4320, 34320 158 4320 continue 159 ivon01 = 223 160 ivon02 = 99 161 ivcomp = ivon01 * ivon02 162 go to 44320 16334320 ivdele = ivdele + 1 164 write (i02,80003) ivtnum 165 if (iczero) 44320, 4331, 44320 16644320 if (ivcomp - 22077) 24320,14320,24320 16714320 ivpass = ivpass + 1 168 write (i02,80001) ivtnum 169 go to 4331 17024320 ivfail = ivfail + 1 171 ivcorr = 22077 172 write (i02,80004) ivtnum, ivcomp ,ivcorr 173 4331 continue 174 ivtnum = 433 175c 176c **** test 433 **** 177c 178 if (iczero) 34330, 4330, 34330 179 4330 continue 180 ivon01 = 11235 181 ivon02 = 2 182 ivcomp = ivon01*ivon02 183 go to 44330 18434330 ivdele = ivdele + 1 185 write (i02,80003) ivtnum 186 if (iczero) 44330, 4341, 44330 18744330 if (ivcomp - 22470) 24330,14330,24330 18814330 ivpass = ivpass + 1 189 write (i02,80001) ivtnum 190 go to 4341 19124330 ivfail = ivfail + 1 192 ivcorr = 22470 193 write (i02,80004) ivtnum, ivcomp ,ivcorr 194c 195c test 434 through test 437 196c one negative variable, one positive variable 197c 198 4341 continue 199 ivtnum = 434 200c 201c **** test 434 **** 202c 203 if (iczero) 34340, 4340, 34340 204 4340 continue 205 ivon01 = -2 206 ivon02 = 3 207 ivcomp = ivon01 * ivon02 208 go to 44340 20934340 ivdele = ivdele + 1 210 write (i02,80003) ivtnum 211 if (iczero) 44340, 4351, 44340 21244340 if (ivcomp +6) 24340,14340,24340 21314340 ivpass = ivpass + 1 214 write (i02,80001) ivtnum 215 go to 4351 21624340 ivfail = ivfail + 1 217 ivcorr = -6 218 write (i02,80004) ivtnum, ivcomp ,ivcorr 219 4351 continue 220 ivtnum = 435 221c 222c **** test 435 **** 223c 224 if (iczero) 34350, 4350, 34350 225 4350 continue 226 ivon01 = -13 227 ivon02 = +11 228 ivcomp = ivon01*ivon02 229 go to 44350 23034350 ivdele = ivdele + 1 231 write (i02,80003) ivtnum 232 if (iczero) 44350, 4361, 44350 23344350 if (ivcomp + 143) 24350,14350,24350 23414350 ivpass = ivpass + 1 235 write (i02,80001) ivtnum 236 go to 4361 23724350 ivfail = ivfail + 1 238 ivcorr = -143 239 write (i02,80004) ivtnum, ivcomp ,ivcorr 240 4361 continue 241 ivtnum = 436 242c 243c **** test 436 **** 244c 245 if (iczero) 34360, 4360, 34360 246 4360 continue 247 ivon01 = -223 248 ivon02 = 99 249 ivcomp = ivon01 * ivon02 250 go to 44360 25134360 ivdele = ivdele + 1 252 write (i02,80003) ivtnum 253 if (iczero) 44360, 4371, 44360 25444360 if (ivcomp + 22077) 24360,14360,24360 25514360 ivpass = ivpass + 1 256 write (i02,80001) ivtnum 257 go to 4371 25824360 ivfail = ivfail + 1 259 ivcorr = -22077 260 write (i02,80004) ivtnum, ivcomp ,ivcorr 261 4371 continue 262 ivtnum = 437 263c 264c **** test 437 **** 265c 266 if (iczero) 34370, 4370, 34370 267 4370 continue 268 ivon01 = -11235 269 ivon02 = 2 270 ivcomp = ivon01 * ivon02 271 go to 44370 27234370 ivdele = ivdele + 1 273 write (i02,80003) ivtnum 274 if (iczero) 44370, 4381, 44370 27544370 if (ivcomp + 22470) 24370,14370,24370 27614370 ivpass = ivpass + 1 277 write (i02,80001) ivtnum 278 go to 4381 27924370 ivfail = ivfail + 1 280 ivcorr = -22470 281 write (i02,80004) ivtnum, ivcomp ,ivcorr 282c 283c test 438 through test 441 - two negative variables 284 4381 continue 285 ivtnum = 438 286c 287c **** test 438 **** 288c 289 if (iczero) 34380, 4380, 34380 290 4380 continue 291 ivon01 = -2 292 ivon02 = -3 293 ivcomp = ivon01 * ivon02 294 go to 44380 29534380 ivdele = ivdele + 1 296 write (i02,80003) ivtnum 297 if (iczero) 44380, 4391, 44380 29844380 if (ivcomp - 6) 24380,14380,24380 29914380 ivpass = ivpass + 1 300 write (i02,80001) ivtnum 301 go to 4391 30224380 ivfail = ivfail + 1 303 ivcorr = 6 304 write (i02,80004) ivtnum, ivcomp ,ivcorr 305 4391 continue 306 ivtnum = 439 307c 308c **** test 439 **** 309c 310 if (iczero) 34390, 4390, 34390 311 4390 continue 312 ivon01 = -13 313 ivon02 = -11 314 ivcomp = ivon01 * ivon02 315 go to 44390 31634390 ivdele = ivdele + 1 317 write (i02,80003) ivtnum 318 if (iczero) 44390, 4401, 44390 31944390 if (ivcomp - 143) 24390,14390,24390 32014390 ivpass = ivpass + 1 321 write (i02,80001) ivtnum 322 go to 4401 32324390 ivfail = ivfail + 1 324 ivcorr = 143 325 write (i02,80004) ivtnum, ivcomp ,ivcorr 326 4401 continue 327 ivtnum = 440 328c 329c **** test 440 **** 330c 331 if (iczero) 34400, 4400, 34400 332 4400 continue 333 ivon01 = -223 334 ivon02 = -99 335 ivcomp = ivon01*ivon02 336 go to 44400 33734400 ivdele = ivdele + 1 338 write (i02,80003) ivtnum 339 if (iczero) 44400, 4411, 44400 34044400 if (ivcomp - 22077) 24400,14400,24400 34114400 ivpass = ivpass + 1 342 write (i02,80001) ivtnum 343 go to 4411 34424400 ivfail = ivfail + 1 345 ivcorr = 22077 346 write (i02,80004) ivtnum, ivcomp ,ivcorr 347 4411 continue 348 ivtnum = 441 349c 350c **** test 441 **** 351c 352 if (iczero) 34410, 4410, 34410 353 4410 continue 354 ivon01 = -5461 355 ivon02 = -6 356 ivcomp = ivon01 * ivon02 357 go to 44410 35834410 ivdele = ivdele + 1 359 write (i02,80003) ivtnum 360 if (iczero) 44410, 4421, 44410 36144410 if (ivcomp - 32766) 24410, 14410, 24410 36214410 ivpass = ivpass + 1 363 write (i02,80001) ivtnum 364 go to 4421 36524410 ivfail = ivfail + 1 366 ivcorr = 32766 367 write (i02,80004) ivtnum, ivcomp ,ivcorr 368c 369c test 442 through test 445 contain signed integer variables and 370c operator * in an arithmetic expression. 371 4421 continue 372 ivtnum = 442 373c 374c **** test 442 **** 375c form is iv = -iv*iv 376c 377 if (iczero) 34420, 4420, 34420 378 4420 continue 379 ivon01 = 2 380 ivon02 = 3 381 ivcomp = -ivon01 * ivon02 382 go to 44420 38334420 ivdele = ivdele + 1 384 write (i02,80003) ivtnum 385 if (iczero) 44420, 4431, 44420 38644420 if (ivcomp + 6) 24420,14420,24420 38714420 ivpass = ivpass + 1 388 write (i02,80001) ivtnum 389 go to 4431 39024420 ivfail = ivfail + 1 391 ivcorr = -6 392 write (i02,80004) ivtnum, ivcomp ,ivcorr 393 4431 continue 394 ivtnum = 443 395c 396c **** test 443 **** 397c form is iv = iv*(-iv) 398c 399 if (iczero) 34430, 4430, 34430 400 4430 continue 401 ivon01 = 2 402 ivon02 = 3 403 ivcomp = ivon01 * (-ivon02) 404 go to 44430 40534430 ivdele = ivdele + 1 406 write (i02,80003) ivtnum 407 if (iczero) 44430, 4441, 44430 40844430 if (ivcomp +6) 24430,14430,24430 40914430 ivpass = ivpass + 1 410 write (i02,80001) ivtnum 411 go to 4441 41224430 ivfail = ivfail + 1 413 ivcorr = -6 414 write (i02,80004) ivtnum, ivcomp ,ivcorr 415 4441 continue 416 ivtnum = 444 417c 418c **** test 444 **** 419c form is iv = (-iv)*(-iv) 420c 421 if (iczero) 34440, 4440, 34440 422 4440 continue 423 ivon01 = 2 424 ivon02 = 3 425 ivcomp = (-ivon01) * (-ivon02) 426 go to 44440 42734440 ivdele = ivdele + 1 428 write (i02,80003) ivtnum 429 if (iczero) 44440, 4451, 44440 43044440 if (ivcomp - 6) 24440,14440,24440 43114440 ivpass = ivpass + 1 432 write (i02,80001) ivtnum 433 go to 4451 43424440 ivfail = ivfail + 1 435 ivcorr = 6 436 write (i02,80004) ivtnum, ivcomp ,ivcorr 437 4451 continue 438 ivtnum = 445 439c 440c **** test 445 **** 441c form is iv = -iv * iv 442c 443 if (iczero) 34450, 4450, 34450 444 4450 continue 445 ivon01 = -11235 446 ivon02 = -2 447 ivcomp = -ivon01 * ivon02 448 go to 44450 44934450 ivdele = ivdele + 1 450 write (i02,80003) ivtnum 451 if (iczero) 44450, 4461, 44450 45244450 if (ivcomp + 22470) 24450,14450,24450 45314450 ivpass = ivpass + 1 454 write (i02,80001) ivtnum 455 go to 4461 45624450 ivfail = ivfail + 1 457 ivcorr = -22470 458 write (i02,80004) ivtnum, ivcomp ,ivcorr 459c 460c test 446 through test 452 contain two integer variables, an 461c integer constant and operator * in an arithmetic expression. 462c 463 4461 continue 464 ivtnum = 446 465c 466c **** test 446 **** 467c 468 if (iczero) 34460, 4460, 34460 469 4460 continue 470 ivon01 = 2 471 ivon02 = 3 472 ivcomp = ivon01 * ivon02 * 4 473 go to 44460 47434460 ivdele = ivdele + 1 475 write (i02,80003) ivtnum 476 if (iczero) 44460, 4471, 44460 47744460 if (ivcomp -24) 24460,14460,24460 47814460 ivpass = ivpass + 1 479 write (i02,80001) ivtnum 480 go to 4471 48124460 ivfail = ivfail + 1 482 ivcorr = 24 483 write (i02,80004) ivtnum, ivcomp ,ivcorr 484 4471 continue 485 ivtnum = 447 486c 487c **** test 447 **** 488c 489 if (iczero) 34470, 4470, 34470 490 4470 continue 491 ivon01 = -2 492 ivon02 = 3 493 ivcomp = ivon01 * ivon02 * 4 494 go to 44470 49534470 ivdele = ivdele + 1 496 write (i02,80003) ivtnum 497 if (iczero) 44470, 4481, 44470 49844470 if (ivcomp +24) 24470,14470,24470 49914470 ivpass = ivpass + 1 500 write (i02,80001) ivtnum 501 go to 4481 50224470 ivfail = ivfail + 1 503 ivcorr = -24 504 write (i02,80004) ivtnum, ivcomp ,ivcorr 505 4481 continue 506 ivtnum = 448 507c 508c **** test 448 **** 509c 510 if (iczero) 34480, 4480, 34480 511 4480 continue 512 ivon01 = -2 513 ivon02 = 3 514 ivcomp = ivon01 * ivon02 * (-4) 515 go to 44480 51634480 ivdele = ivdele + 1 517 write (i02,80003) ivtnum 518 if (iczero) 44480, 4491, 44480 51944480 if (ivcomp -24) 24480,14480,24480 52014480 ivpass = ivpass + 1 521 write (i02,80001) ivtnum 522 go to 4491 52324480 ivfail = ivfail + 1 524 ivcorr = 24 525 write (i02,80004) ivtnum, ivcomp ,ivcorr 526 4491 continue 527 ivtnum = 449 528c 529c **** test 449 **** 530c 531 if (iczero) 34490, 4490, 34490 532 4490 continue 533 ivon01 = 51 534 ivon03 = 13 535 ivcomp = ivon01 * 23 * ivon03 536 go to 44490 53734490 ivdele = ivdele + 1 538 write (i02,80003) ivtnum 539 if (iczero) 44490, 4501, 44490 54044490 if (ivcomp - 15249) 24490,14490,24490 54114490 ivpass = ivpass + 1 542 write (i02,80001) ivtnum 543 go to 4501 54424490 ivfail = ivfail + 1 545 ivcorr = 15249 546 write (i02,80004) ivtnum, ivcomp ,ivcorr 547 4501 continue 548 ivtnum = 450 549c 550c **** test 450 **** 551c 552 if (iczero) 34500, 4500, 34500 553 4500 continue 554 ivon02 = 2 555 ivon03 = 5461 556 ivcomp = 3 * ivon02 * ivon03 557 go to 44500 55834500 ivdele = ivdele + 1 559 write (i02,80003) ivtnum 560 if (iczero) 44500, 4511, 44500 56144500 if (ivcomp -32766) 24500,14500,24500 56214500 ivpass = ivpass + 1 563 write (i02,80001) ivtnum 564 go to 4511 56524500 ivfail = ivfail + 1 566 ivcorr = 32766 567 write (i02,80004) ivtnum, ivcomp ,ivcorr 568 4511 continue 569 ivtnum = 451 570c 571c **** test 451 **** 572c 573 if (iczero) 34510, 4510, 34510 574 4510 continue 575 ivon01 = -51 576 ivon03 = 13 577 ivcomp = ivon01 * 23 * (-ivon03) 578 go to 44510 57934510 ivdele = ivdele + 1 580 write (i02,80003) ivtnum 581 if (iczero) 44510, 4521, 44510 58244510 if (ivcomp - 15249) 24510,14510,24510 58314510 ivpass = ivpass + 1 584 write (i02,80001) ivtnum 585 go to 4521 58624510 ivfail = ivfail + 1 587 ivcorr = 15249 588 write (i02,80004) ivtnum, ivcomp ,ivcorr 589 4521 continue 590 ivtnum = 452 591c 592c **** test 452 **** 593c 594 if (iczero) 34520, 4520, 34520 595 4520 continue 596 ivon01 = -5461 597 ivon03 = 2 598 ivcomp = ivon01 * (-3) * ivon03 599 go to 44520 60034520 ivdele = ivdele + 1 601 write (i02,80003) ivtnum 602 if (iczero) 44520, 4531, 44520 60344520 if (ivcomp - 32766) 24520,14520,24520 60414520 ivpass = ivpass + 1 605 write (i02,80001) ivtnum 606 go to 4531 60724520 ivfail = ivfail + 1 608 ivcorr = 32766 609 write (i02,80004) ivtnum, ivcomp ,ivcorr 610c 611c test 453 through test 461 contain two integer variables and one 612c integer constant in an arithmetic expression. parentheses are 613c used to group elements in the arithmetic expressions in these 614c tests. 615c 616 4531 continue 617 ivtnum = 453 618c 619c **** test 453 **** 620c 621 if (iczero) 34530, 4530, 34530 622 4530 continue 623 ivon01 = 2 624 ivon02 = 3 625 ivcomp = ivon01 * (ivon02 * 4) 626 go to 44530 62734530 ivdele = ivdele + 1 628 write (i02,80003) ivtnum 629 if (iczero) 44530, 4541, 44530 63044530 if (ivcomp - 24) 24530,14530,24530 63114530 ivpass = ivpass + 1 632 write (i02,80001) ivtnum 633 go to 4541 63424530 ivfail = ivfail + 1 635 ivcorr = 24 636 write (i02,80004) ivtnum, ivcomp ,ivcorr 637 4541 continue 638 ivtnum = 454 639c 640c **** test 454 **** 641c 642 if (iczero) 34540, 4540, 34540 643 4540 continue 644 ivon01 = 2 645 ivon02 = 3 646 ivcomp = (ivon01 * ivon02) * 4 647 go to 44540 64834540 ivdele = ivdele + 1 649 write (i02,80003) ivtnum 650 if (iczero) 44540, 4551, 44540 65144540 if (ivcomp -24) 24540,14540,24540 65214540 ivpass = ivpass + 1 653 write (i02,80001) ivtnum 654 go to 4551 65524540 ivfail = ivfail + 1 656 ivcorr = 24 657 write (i02,80004) ivtnum, ivcomp ,ivcorr 658 4551 continue 659 ivtnum = 455 660c 661c **** test 455 **** 662c 663 if (iczero) 34550, 4550, 34550 664 4550 continue 665 ivon01 = -2 666 ivon02 = 3 667 ivcomp = ivon01 *(ivon02 * (-4)) 668 go to 44550 66934550 ivdele = ivdele + 1 670 write (i02,80003) ivtnum 671 if (iczero) 44550, 4561, 44550 67244550 if (ivcomp - 24) 24550,14550,24550 67314550 ivpass = ivpass + 1 674 write (i02,80001) ivtnum 675 go to 4561 67624550 ivfail = ivfail + 1 677 ivcorr = 24 678 write (i02,80004) ivtnum, ivcomp ,ivcorr 679 4561 continue 680 ivtnum = 456 681c 682c **** test 456 **** 683c 684 if (iczero) 34560, 4560, 34560 685 4560 continue 686 ivon01 = -2 687 ivon02 = -3 688 ivcomp = ivon01 * (ivon02 * 4) 689 go to 44560 69034560 ivdele = ivdele + 1 691 write (i02,80003) ivtnum 692 if (iczero) 44560, 4571, 44560 69344560 if (ivcomp -24) 24560,14560,24560 69414560 ivpass = ivpass + 1 695 write (i02,80001) ivtnum 696 go to 4571 69724560 ivfail = ivfail + 1 698 ivcorr = 24 699 write (i02,80004) ivtnum, ivcomp ,ivcorr 700 4571 continue 701 ivtnum = 457 702c 703c **** test 457 **** 704c 705 if (iczero) 34570, 4570, 34570 706 4570 continue 707 ivon01 = -2 708 ivon02 = -3 709 ivcomp = (ivon01*ivon02) * (-4) 710 go to 44570 71134570 ivdele = ivdele + 1 712 write (i02,80003) ivtnum 713 if (iczero) 44570, 4581, 44570 71444570 if (ivcomp +24) 24570,14570,24570 71514570 ivpass = ivpass + 1 716 write (i02,80001) ivtnum 717 go to 4581 71824570 ivfail = ivfail + 1 719 ivcorr = -24 720 write (i02,80004) ivtnum, ivcomp ,ivcorr 721 4581 continue 722 ivtnum = 458 723c 724c **** test 458 **** 725c 726 if (iczero) 34580, 4580, 34580 727 4580 continue 728 ivon01 = 23 729 ivon03 = 13 730 ivcomp = ivon01 * (51 * ivon03) 731 go to 44580 73234580 ivdele = ivdele + 1 733 write (i02,80003) ivtnum 734 if (iczero) 44580, 4591, 44580 73544580 if (ivcomp -15249) 24580,14580,24580 73614580 ivpass = ivpass + 1 737 write (i02,80001) ivtnum 738 go to 4591 73924580 ivfail = ivfail + 1 740 ivcorr = 15249 741 write (i02,80004) ivtnum, ivcomp ,ivcorr 742 4591 continue 743 ivtnum = 459 744c 745c **** test 459 **** 746c 747 if (iczero) 34590, 4590, 34590 748 4590 continue 749 ivon02 = 51 750 ivon03 = 13 751 ivcomp = (23 * ivon02) * ivon03 752 go to 44590 75334590 ivdele = ivdele + 1 754 write (i02,80003) ivtnum 755 if (iczero) 44590, 4601, 44590 75644590 if (ivcomp - 15249) 24590,14590,24590 75714590 ivpass = ivpass + 1 758 write (i02,80001) ivtnum 759 go to 4601 76024590 ivfail = ivfail + 1 761 ivcorr = 15249 762 write (i02,80004) ivtnum, ivcomp ,ivcorr 763 4601 continue 764 ivtnum = 460 765c 766c **** test 460 **** 767c 768 if (iczero) 34600, 4600, 34600 769 4600 continue 770 ivon01 = -23 771 ivon03 = 13 772 ivcomp = (ivon01 * (-51)) * (-ivon03) 773 go to 44600 77434600 ivdele = ivdele + 1 775 write (i02,80003) ivtnum 776 if (iczero) 44600, 4611, 44600 77744600 if (ivcomp + 15249) 24600,14600,24600 77814600 ivpass = ivpass + 1 779 write (i02,80001) ivtnum 780 go to 4611 78124600 ivfail = ivfail + 1 782 ivcorr = -15249 783 write (i02,80004) ivtnum, ivcomp ,ivcorr 784 4611 continue 785 ivtnum = 461 786c 787c **** test 461 **** 788c 789 if (iczero) 34610, 4610, 34610 790 4610 continue 791 ivon02 = 51 792 ivon03 = 13 793 ivcomp = -23 * (ivon02*ivon03) 794 go to 44610 79534610 ivdele = ivdele + 1 796 write (i02,80003) ivtnum 797 if (iczero) 44610, 4621, 44610 79844610 if (ivcomp + 15249) 24610,14610,24610 79914610 ivpass = ivpass + 1 800 write (i02,80001) ivtnum 801 go to 4621 80224610 ivfail = ivfail + 1 803 ivcorr = -15249 804 write (i02,80004) ivtnum, ivcomp ,ivcorr 805c **** end of tests **** 806 4621 continue 807c 808c write page footings and run summaries 80999999 continue 810 write (i02,90002) 811 write (i02,90006) 812 write (i02,90002) 813 write (i02,90002) 814 write (i02,90007) 815 write (i02,90002) 816 write (i02,90008) ivfail 817 write (i02,90009) ivpass 818 write (i02,90010) ivdele 819c 820c 821c terminate routine execution 822 stop 823c 824c format statements for page headers 82590000 format (1h1) 82690002 format (1h ) 82790001 format (1h ,10x,34hfortran compiler validation system) 82890003 format (1h ,21x,11hversion 1.0) 82990004 format (1h ,10x,38hfor official use only - copyright 1978) 83090005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) 83190006 format (1h ,5x,46h----------------------------------------------) 83290011 format (1h ,18x,17hsubset level test) 833c 834c format statements for run summaries 83590008 format (1h ,15x,i5,19h errors encountered) 83690009 format (1h ,15x,i5,13h tests passed) 83790010 format (1h ,15x,i5,14h tests deleted) 838c 839c format statements for test results 84080001 format (1h ,4x,i5,7x,4hpass) 84180002 format (1h ,4x,i5,7x,4hfail) 84280003 format (1h ,4x,i5,7x,7hdeleted) 84380004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) 84480005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) 845c 84690007 format (1h ,20x,20hend of program fm035) 847 end 848