1c comment section 2c 3c fm040 4c 5c this routine tests arithmetic assignment statements of the 6c form integer variable = arithmetic expression 7c where the arithmetic expression is formed with the arithmetic 8c operator /, integer variables and an integer constant. both 9c positive and negative values are used for the integer variables 10c and the integer constant. 11c 12c there are tests which require no truncation of the result and 13c tests where the result must be truncated before being stored in 14c the resultant integer variable. some of the tests use parens 15c to group elements in the arithmetic expression. 16c 17c there are tests where the arithmetic expression contains 18c (1) integer variable/integer variable 19c (2) integer variable/integer variable/integer constant 20c integer variable/integer constant/integer variable 21c integer constant/integer variable/integer variable 22c (3) same as (2) but with parentheses to group elements 23c in the arithmetic expression. 24c 25c references 26c american national standard programming language fortran, 27c x3.9-1978 28c 29c section 4.3, integer type 30c section 4.3.1, integer constant 31c section 6.1, arithmetic expressions 32c section 6.6, evaluation of expressions 33c section 10.1, arithmetic assignment statement 34c 35c ********************************************************** 36c 37c a compiler validation system for the fortran language 38c based on specifications as defined in american national standard 39c programming language fortran x3.9-1978, has been developed by the 40c federal cobol compiler testing service. the fortran compiler 41c validation system (fcvs) consists of audit routines, their related 42c data, and an executive system. each audit routine is a fortran 43c program, subprogram or function which includes tests of specific 44c language elements and supporting procedures indicating the result 45c of executing these tests. 46c 47c this particular program/subprogram/function contains features 48c found only in the subset as defined in x3.9-1978. 49c 50c suggestions and comments should be forwarded to - 51c 52c department of the navy 53c federal cobol compiler testing service 54c washington, d.c. 20376 55c 56c ********************************************************** 57c 58c 59c 60c initialization section 61c 62c initialize constants 63c ************** 64c i01 contains the logical unit number for the card reader. 65 i01 = 5 66c i02 contains the logical unit number for the printer. 67 i02 = 6 68c system environment section 69c 70cx010 this card is replaced by contents of fexec x-010 control card. 71c the cx010 card is for overriding the program default i01 = 5 72c (unit number for card reader). 73cx011 this card is replaced by contents of fexec x-011 control card. 74c the cx011 card is for systems which require additional 75c fortran statements for files associated with cx010 above. 76c 77cx020 this card is replaced by contents of fexec x-020 control card. 78c the cx020 card is for overriding the program default i02 = 6 79c (unit number for printer). 80cx021 this card is replaced by contents of fexec x-021 control card. 81c the cx021 card is for systems which require additional 82c fortran statements for files associated with cx020 above. 83c 84 ivpass=0 85 ivfail=0 86 ivdele=0 87 iczero=0 88c 89c write page headers 90 write (i02,90000) 91 write (i02,90001) 92 write (i02,90002) 93 write (i02, 90002) 94 write (i02,90003) 95 write (i02,90002) 96 write (i02,90004) 97 write (i02,90002) 98 write (i02,90011) 99 write (i02,90002) 100 write (i02,90002) 101 write (i02,90005) 102 write (i02,90006) 103 write (i02,90002) 104c 105c test section 106c 107c arithmetic assignment statement 108c 109c test 582 through test 597 contain arithmetic assignment statements 110c of the form integer variable=integer variable/integer var. 111c 112c test 582 through test 585 - positive values 113c no truncation required 114c 115 5821 continue 116 ivtnum = 582 117c 118c **** test 582 **** 119c 120 if (iczero) 35820, 5820, 35820 121 5820 continue 122 ivon01 = 4 123 ivon02 = 2 124 ivcomp = ivon01 / ivon02 125 go to 45820 12635820 ivdele = ivdele + 1 127 write (i02,80003) ivtnum 128 if (iczero) 45820, 5831, 45820 12945820 if (ivcomp -2) 25820,15820,25820 13015820 ivpass = ivpass + 1 131 write (i02,80001) ivtnum 132 go to 5831 13325820 ivfail = ivfail + 1 134 ivcorr = 2 135 write (i02,80004) ivtnum, ivcomp ,ivcorr 136 5831 continue 137 ivtnum = 583 138c 139c **** test 583 **** 140c 141 if (iczero) 35830, 5830, 35830 142 5830 continue 143 ivon01 = 3575 144 ivon02 = 25 145 ivcomp = ivon01/ivon02 146 go to 45830 14735830 ivdele = ivdele + 1 148 write (i02,80003) ivtnum 149 if (iczero) 45830, 5841, 45830 15045830 if (ivcomp - 143) 25830,15830,25830 15115830 ivpass = ivpass + 1 152 write (i02,80001) ivtnum 153 go to 5841 15425830 ivfail = ivfail + 1 155 ivcorr = 143 156 write (i02,80004) ivtnum, ivcomp ,ivcorr 157 5841 continue 158 ivtnum = 584 159c 160c **** test 584 **** 161c 162 if (iczero) 35840, 5840, 35840 163 5840 continue 164 ivon01 = 6170 165 ivon02 = 1234 166 ivcomp = ivon01/ivon02 167 go to 45840 16835840 ivdele = ivdele + 1 169 write (i02,80003) ivtnum 170 if (iczero) 45840, 5851, 45840 17145840 if (ivcomp - 5) 25840,15840,25840 17215840 ivpass = ivpass + 1 173 write (i02,80001) ivtnum 174 go to 5851 17525840 ivfail = ivfail + 1 176 ivcorr = 5 177 write (i02,80004) ivtnum, ivcomp ,ivcorr 178 5851 continue 179 ivtnum = 585 180c 181c **** test 585 **** 182c 183 if (iczero) 35850, 5850, 35850 184 5850 continue 185 ivon01 = 32767 186 ivon02 = 1 187 ivcomp = ivon01/ivon02 188 go to 45850 18935850 ivdele = ivdele + 1 190 write (i02,80003) ivtnum 191 if (iczero) 45850, 5861, 45850 19245850 if (ivcomp - 32767) 25850,15850,25850 19315850 ivpass = ivpass + 1 194 write (i02,80001) ivtnum 195 go to 5861 19625850 ivfail = ivfail + 1 197 ivcorr = 32767 198 write (i02,80004) ivtnum, ivcomp ,ivcorr 199c 200c test 586 through test 589 - positive values 201c truncation of result required 202c 203 5861 continue 204 ivtnum = 586 205c 206c **** test 586 **** 207c 208 if (iczero) 35860, 5860, 35860 209 5860 continue 210 ivon01 = 2 211 ivon02 = 3 212 ivcomp = ivon01/ivon02 213 go to 45860 21435860 ivdele = ivdele + 1 215 write (i02,80003) ivtnum 216 if (iczero) 45860, 5871, 45860 21745860 if (ivcomp) 25860,15860,25860 21815860 ivpass = ivpass + 1 219 write (i02,80001) ivtnum 220 go to 5871 22125860 ivfail = ivfail + 1 222 ivcorr = 0 223 write (i02,80004) ivtnum, ivcomp ,ivcorr 224 5871 continue 225 ivtnum = 587 226c 227c **** test 587 **** 228c 229 if (iczero) 35870, 5870, 35870 230 5870 continue 231 ivon01 = 959 232 ivon02 = 120 233 ivcomp = ivon01/ivon02 234 go to 45870 23535870 ivdele = ivdele + 1 236 write (i02,80003) ivtnum 237 if (iczero) 45870, 5881, 45870 23845870 if (ivcomp - 7) 25870,15870,25870 23915870 ivpass = ivpass + 1 240 write (i02,80001) ivtnum 241 go to 5881 24225870 ivfail = ivfail + 1 243 ivcorr = 7 244 write (i02,80004) ivtnum, ivcomp ,ivcorr 245 5881 continue 246 ivtnum = 588 247c 248c **** test 588 **** 249c 250 if (iczero) 35880, 5880, 35880 251 5880 continue 252 ivon01 = 26606 253 ivon02 = 8 254 ivcomp = ivon01/ivon02 255 go to 45880 25635880 ivdele = ivdele + 1 257 write (i02,80003) ivtnum 258 if (iczero) 45880, 5891, 45880 25945880 if (ivcomp - 3325) 25880,15880,25880 26015880 ivpass = ivpass + 1 261 write (i02,80001) ivtnum 262 go to 5891 26325880 ivfail = ivfail + 1 264 ivcorr = 3325 265 write (i02,80004) ivtnum, ivcomp ,ivcorr 266 5891 continue 267 ivtnum = 589 268c 269c **** test 589 **** 270c 271 if (iczero) 35890, 5890, 35890 272 5890 continue 273 ivon01 = 25603 274 ivon02 = 10354 275 ivcomp = ivon01/ivon02 276 go to 45890 27735890 ivdele = ivdele + 1 278 write (i02,80003) ivtnum 279 if (iczero) 45890, 5901, 45890 28045890 if (ivcomp - 2) 25890,15890,25890 28115890 ivpass = ivpass + 1 282 write (i02,80001) ivtnum 283 go to 5901 28425890 ivfail = ivfail + 1 285 ivcorr = 2 286 write (i02,80004) ivtnum, ivcomp ,ivcorr 287c 288c test 590 through test 593 - negative values included 289c no truncation required 290c 291 5901 continue 292 ivtnum = 590 293c 294c **** test 590 **** 295c 296 if (iczero) 35900, 5900, 35900 297 5900 continue 298 ivon01 = 75 299 ivon02 = -25 300 ivcomp = ivon01/ivon02 301 go to 45900 30235900 ivdele = ivdele + 1 303 write (i02,80003) ivtnum 304 if (iczero) 45900, 5911, 45900 30545900 if (ivcomp + 3) 25900,15900,25900 30615900 ivpass = ivpass + 1 307 write (i02,80001) ivtnum 308 go to 5911 30925900 ivfail = ivfail + 1 310 ivcorr = -3 311 write (i02,80004) ivtnum, ivcomp ,ivcorr 312 5911 continue 313 ivtnum = 591 314c 315c **** test 591 **** 316c 317 if (iczero) 35910, 5910, 35910 318 5910 continue 319 ivon01 = -6170 320 ivon02 = -1234 321 ivcomp = ivon01/ivon02 322 go to 45910 32335910 ivdele = ivdele + 1 324 write (i02,80003) ivtnum 325 if (iczero) 45910, 5921, 45910 32645910 if (ivcomp -5) 25910,15910,25910 32715910 ivpass = ivpass + 1 328 write (i02,80001) ivtnum 329 go to 5921 33025910 ivfail = ivfail + 1 331 ivcorr = 5 332 write (i02,80004) ivtnum, ivcomp ,ivcorr 333 5921 continue 334 ivtnum = 592 335c 336c **** test 592 **** 337c 338 if (iczero) 35920, 5920, 35920 339 5920 continue 340 ivon01 = 32766 341 ivon02 = -2 342 ivcomp =-ivon01/ivon02 343 go to 45920 34435920 ivdele = ivdele + 1 345 write (i02,80003) ivtnum 346 if (iczero) 45920, 5931, 45920 34745920 if (ivcomp - 16383) 25920,15920,25920 34815920 ivpass = ivpass + 1 349 write (i02,80001) ivtnum 350 go to 5931 35125920 ivfail = ivfail + 1 352 ivcorr = 16383 353 write (i02,80004) ivtnum, ivcomp ,ivcorr 354 5931 continue 355 ivtnum = 593 356c 357c **** test 593 **** 358c 359 if (iczero) 35930, 5930, 35930 360 5930 continue 361 ivon01 = 4 362 ivon02 = 2 363 ivcomp = ivon01/(-ivon02) 364 go to 45930 36535930 ivdele = ivdele + 1 366 write (i02,80003) ivtnum 367 if (iczero) 45930, 5941, 45930 36845930 if (ivcomp + 2) 25930,15930,25930 36915930 ivpass = ivpass + 1 370 write (i02,80001) ivtnum 371 go to 5941 37225930 ivfail = ivfail + 1 373 ivcorr = -2 374 write (i02,80004) ivtnum, ivcomp ,ivcorr 375c 376c test 594 through test 597 - negative values included 377c truncation of result required 378c 379 5941 continue 380 ivtnum = 594 381c 382c **** test 594 **** 383c 384 if (iczero) 35940, 5940, 35940 385 5940 continue 386 ivon01 = -5 387 ivon02 = 2 388 ivcomp = ivon01/ivon02 389 go to 45940 39035940 ivdele = ivdele + 1 391 write (i02,80003) ivtnum 392 if (iczero) 45940, 5951, 45940 39345940 if (ivcomp + 2) 25940,15940,25940 39415940 ivpass = ivpass + 1 395 write (i02,80001) ivtnum 396 go to 5951 39725940 ivfail = ivfail + 1 398 ivcorr = -2 399 write (i02,80004) ivtnum, ivcomp ,ivcorr 400 5951 continue 401 ivtnum = 595 402c 403c **** test 595 **** 404c 405 if (iczero) 35950, 5950, 35950 406 5950 continue 407 ivon01 = -25603 408 ivon02 = -10354 409 ivcomp = ivon01/ivon02 410 go to 45950 41135950 ivdele = ivdele + 1 412 write (i02,80003) ivtnum 413 if (iczero) 45950, 5961, 45950 41445950 if (ivcomp -2) 25950,15950,25950 41515950 ivpass = ivpass + 1 416 write (i02,80001) ivtnum 417 go to 5961 41825950 ivfail = ivfail + 1 419 ivcorr =2 420 write (i02,80004) ivtnum, ivcomp ,ivcorr 421 5961 continue 422 ivtnum = 596 423c 424c **** test 596 **** 425c 426 if (iczero) 35960, 5960, 35960 427 5960 continue 428 ivon01 = 25603 429 ivon02 = 10354 430 ivcomp = -ivon01/ivon02 431 go to 45960 43235960 ivdele = ivdele + 1 433 write (i02,80003) ivtnum 434 if (iczero) 45960, 5971, 45960 43545960 if (ivcomp +2) 25960,15960,25960 43615960 ivpass = ivpass + 1 437 write (i02,80001) ivtnum 438 go to 5971 43925960 ivfail = ivfail + 1 440 ivcorr = -2 441 write (i02,80004) ivtnum, ivcomp ,ivcorr 442 5971 continue 443 ivtnum = 597 444c 445c **** test 597 **** 446c 447 if (iczero) 35970, 5970, 35970 448 5970 continue 449 ivon01 = 25603 450 ivon02 = -2 451 ivcomp = -(ivon01/ivon02) 452 go to 45970 45335970 ivdele = ivdele + 1 454 write (i02,80003) ivtnum 455 if (iczero) 45970, 5981, 45970 45645970 if (ivcomp - 12801) 25970,15970,25970 45715970 ivpass = ivpass + 1 458 write (i02,80001) ivtnum 459 go to 5981 46025970 ivfail = ivfail + 1 461 ivcorr = 12801 462 write (i02,80004) ivtnum, ivcomp ,ivcorr 463c 464c test 598 through test 614 contain two integer variables, an 465c integer constant and operator / in an arithmetic expression. 466c 467c test 598 through test 603 - no parens to group elements but 468c there are parens surrounding negative constants 469c 470c test 598 and test 599 - iv = iv/iv/ic. 471c 472 5981 continue 473 ivtnum = 598 474c 475c **** test 598 **** 476c 477 if (iczero) 35980, 5980, 35980 478 5980 continue 479 ivon01 = 32766 480 ivon02 = 2 481 ivcomp = ivon01/ivon02/3 482 go to 45980 48335980 ivdele = ivdele + 1 484 write (i02,80003) ivtnum 485 if (iczero) 45980, 5991, 45980 48645980 if (ivcomp - 5461) 25980,15980,25980 48715980 ivpass = ivpass + 1 488 write (i02,80001) ivtnum 489 go to 5991 49025980 ivfail = ivfail + 1 491 ivcorr = 5461 492 write (i02,80004) ivtnum, ivcomp ,ivcorr 493 5991 continue 494 ivtnum = 599 495c 496c **** test 599 **** 497c 498 if (iczero) 35990, 5990, 35990 499 5990 continue 500 ivon01 = 7151 501 ivon02 = 3 502 ivcomp = ivon01/ivon02/10 503 go to 45990 50435990 ivdele = ivdele + 1 505 write (i02,80003) ivtnum 506 if (iczero) 45990, 6001, 45990 50745990 if (ivcomp -238) 25990,15990,25990 50815990 ivpass = ivpass + 1 509 write (i02,80001) ivtnum 510 go to 6001 51125990 ivfail = ivfail + 1 512 ivcorr = 238 513 write (i02,80004) ivtnum, ivcomp ,ivcorr 514c 515c test 600 and test 601 - iv= iv/ic/iv. 516c 517 6001 continue 518 ivtnum = 600 519c 520c **** test 600 **** 521c 522 if (iczero) 36000, 6000, 36000 523 6000 continue 524 ivon01 = -7150 525 ivon03 = -25 526 ivcomp = ivon01/(-2)/ivon03 527 go to 46000 52836000 ivdele = ivdele + 1 529 write (i02,80003) ivtnum 530 if (iczero) 46000, 6011, 46000 53146000 if (ivcomp + 143) 26000,16000,26000 53216000 ivpass = ivpass + 1 533 write (i02,80001) ivtnum 534 go to 6011 53526000 ivfail = ivfail + 1 536 ivcorr = -143 537 write (i02,80004) ivtnum, ivcomp ,ivcorr 538 6011 continue 539 ivtnum = 601 540c 541c **** test 601 **** 542c 543 if (iczero) 36010, 6010, 36010 544 6010 continue 545 ivon01 = 32767 546 ivon03 = -1 547 ivcomp = ivon01/2/ivon03 548 go to 46010 54936010 ivdele = ivdele + 1 550 write (i02,80003) ivtnum 551 if (iczero) 46010, 6021, 46010 55246010 if (ivcomp + 16383) 26010,16010,26010 55316010 ivpass = ivpass + 1 554 write (i02,80001) ivtnum 555 go to 6021 55626010 ivfail = ivfail + 1 557 ivcorr = -16383 558 write (i02,80004) ivtnum, ivcomp ,ivcorr 559 6021 continue 560 ivtnum = 602 561c 562c **** test 602 **** 563c 564c test 602 and test 603 - iv=ic/iv/iv 565c 566c 567 if (iczero) 36020, 6020, 36020 568 6020 continue 569 ivon02 = 13 570 ivon03 = 51 571 ivcomp = 15249/ivon02/ivon03 572 go to 46020 57336020 ivdele = ivdele + 1 574 write (i02,80003) ivtnum 575 if (iczero) 46020, 6031, 46020 57646020 if (ivcomp - 23) 26020,16020,26020 57716020 ivpass = ivpass + 1 578 write (i02,80001) ivtnum 579 go to 6031 58026020 ivfail = ivfail + 1 581 ivcorr = 23 582 write (i02,80004) ivtnum, ivcomp ,ivcorr 583 6031 continue 584 ivtnum = 603 585c 586c **** test 603 **** 587c 588 if (iczero) 36030, 6030, 36030 589 6030 continue 590 ivon02 = -13 591 ivon03 = -51 592 ivcomp = -15249/ivon02/ivon03 593 go to 46030 59436030 ivdele = ivdele + 1 595 write (i02,80003) ivtnum 596 if (iczero) 46030, 6041, 46030 59746030 if (ivcomp +23) 26030,16030,26030 59816030 ivpass = ivpass + 1 599 write (i02,80001) ivtnum 600 go to 6041 60126030 ivfail = ivfail + 1 602 ivcorr = -23 603 write (i02,80004) ivtnum, ivcomp ,ivcorr 604c 605c test 604 through test 614 - parentheses are used to group 606c elements in the arithmetic expressions. 607c 608c test 604 and test 605 - iv=(iv/iv)/ic. 609c 610 6041 continue 611 ivtnum = 604 612c 613c **** test 604 **** 614c 615 if (iczero) 36040, 6040, 36040 616 6040 continue 617 ivon01 = 32766 618 ivon02 = 2 619 ivcomp =(ivon01/ivon02)/3 620 go to 46040 62136040 ivdele = ivdele + 1 622 write (i02,80003) ivtnum 623 if (iczero) 46040, 6051, 46040 62446040 if (ivcomp -5461) 26040,16040,26040 62516040 ivpass = ivpass + 1 626 write (i02,80001) ivtnum 627 go to 6051 62826040 ivfail = ivfail + 1 629 ivcorr = 5461 630 write (i02,80004) ivtnum, ivcomp ,ivcorr 631 6051 continue 632 ivtnum = 605 633c 634c **** test 605 **** 635c 636 if (iczero) 36050, 6050, 36050 637 6050 continue 638 ivon01 = 7151 639 ivon02 = 3 640 ivcomp = (ivon01/ivon02)/10 641 go to 46050 64236050 ivdele = ivdele + 1 643 write (i02,80003) ivtnum 644 if (iczero) 46050, 6061, 46050 64546050 if (ivcomp - 238) 26050,16050,26050 64616050 ivpass = ivpass + 1 647 write (i02,80001) ivtnum 648 go to 6061 64926050 ivfail = ivfail + 1 650 ivcorr = 238 651 write (i02,80004) ivtnum, ivcomp ,ivcorr 652c 653c test 606 and test 607 - iv=iv/(iv/ic). 654c 655 6061 continue 656 ivtnum = 606 657c 658c **** test 606 **** 659c 660 if (iczero) 36060, 6060, 36060 661 6060 continue 662 ivon01 = -7154 663 ivon02 = 26 664 ivcomp = ivon01/(ivon02/5) 665 go to 46060 66636060 ivdele = ivdele + 1 667 write (i02,80003) ivtnum 668 if (iczero) 46060, 6071, 46060 66946060 if (ivcomp + 1430) 26060,16060,26060 67016060 ivpass = ivpass + 1 671 write (i02,80001) ivtnum 672 go to 6071 67326060 ivfail = ivfail + 1 674 ivcorr = -1430 675 write (i02,80004) ivtnum, ivcomp ,ivcorr 676 6071 continue 677 ivtnum = 607 678c 679c **** test 607 **** 680c 681 if (iczero) 36070, 6070, 36070 682 6070 continue 683 ivon01 = 29 684 ivon02 = -5 685 ivcomp = ivon01/(ivon02/2) 686 go to 46070 68736070 ivdele = ivdele + 1 688 write (i02,80003) ivtnum 689 if (iczero) 46070, 6081, 46070 69046070 if (ivcomp + 14) 26070,16070,26070 69116070 ivpass = ivpass + 1 692 write (i02,80001) ivtnum 693 go to 6081 69426070 ivfail = ivfail + 1 695 ivcorr = -14 696 write (i02,80004) ivtnum, ivcomp ,ivcorr 697c 698c test 608 and test 609 - iv = (iv/ic)/iv. 699c 700 6081 continue 701 ivtnum = 608 702c 703c **** test 608 **** 704c 705 if (iczero) 36080, 6080, 36080 706 6080 continue 707 ivon01 = 24 708 ivon03 = 3 709 ivcomp = (ivon01/3)/ivon03 710 go to 46080 71136080 ivdele = ivdele + 1 712 write (i02,80003) ivtnum 713 if (iczero) 46080, 6091, 46080 71446080 if (ivcomp -2) 26080,16080,26080 71516080 ivpass = ivpass + 1 716 write (i02,80001) ivtnum 717 go to 6091 71826080 ivfail = ivfail + 1 719 ivcorr = 2 720 write (i02,80004) ivtnum, ivcomp ,ivcorr 721 6091 continue 722 ivtnum = 609 723c 724c **** test 609 **** 725c 726 if (iczero) 36090, 6090, 36090 727 6090 continue 728 ivon01 = 7151 729 ivon03 = 10 730 ivcomp = (ivon01/(-3))/ivon03 731 go to 46090 73236090 ivdele = ivdele + 1 733 write (i02,80003) ivtnum 734 if (iczero) 46090, 6101, 46090 73546090 if (ivcomp + 238) 26090,16090,26090 73616090 ivpass = ivpass + 1 737 write (i02,80001) ivtnum 738 go to 6101 73926090 ivfail = ivfail + 1 740 ivcorr = -238 741 write (i02,80004) ivtnum, ivcomp ,ivcorr 742c 743c test 610 and test 611 - iv=iv(ic/iv) 744c 745 6101 continue 746 ivtnum = 610 747c 748c **** test 610 **** 749c 750 if (iczero) 36100, 6100, 36100 751 6100 continue 752 ivon01 = -7154 753 ivon03 = -5 754 ivcomp = ivon01/((-26)/ivon03) 755 go to 46100 75636100 ivdele = ivdele + 1 757 write (i02,80003) ivtnum 758 if (iczero) 46100, 6111, 46100 75946100 if (ivcomp + 1430) 26100,16100,26100 76016100 ivpass = ivpass + 1 761 write (i02,80001) ivtnum 762 go to 6111 76326100 ivfail = ivfail + 1 764 ivcorr = -1430 765 write (i02,80004) ivtnum, ivcomp ,ivcorr 766 6111 continue 767 ivtnum = 611 768c 769c **** test 611 **** 770c 771 if (iczero) 36110, 6110, 36110 772 6110 continue 773 ivon01 = 7150 774 ivon03 = 5 775 ivcomp = ivon01/((+25)/ivon03) 776 go to 46110 77736110 ivdele = ivdele + 1 778 write (i02,80003) ivtnum 779 if (iczero) 46110, 6121, 46110 78046110 if (ivcomp -1430) 26110,16110,26110 78116110 ivpass = ivpass + 1 782 write (i02,80001) ivtnum 783 go to 6121 78426110 ivfail = ivfail + 1 785 ivcorr = 1430 786 write (i02,80004) ivtnum, ivcomp ,ivcorr 787 6121 continue 788 ivtnum = 612 789c 790c **** test 612 **** 791c test 612 - iv= (ic/iv)/iv 792c 793 if (iczero) 36120, 6120, 36120 794 6120 continue 795 ivon02 = -3 796 ivon03 = -10 797 ivcomp = (-7154/ivon02)/ivon03 798 go to 46120 79936120 ivdele = ivdele + 1 800 write (i02,80003) ivtnum 801 if (iczero) 46120, 6131, 46120 80246120 if (ivcomp + 238) 26120,16120,26120 80316120 ivpass = ivpass + 1 804 write (i02,80001) ivtnum 805 go to 6131 80626120 ivfail = ivfail + 1 807 ivcorr = -238 808 write (i02,80004) ivtnum, ivcomp ,ivcorr 809c 810c test 613 and test 614 - iv=ic/(iv/iv) 811c 812 6131 continue 813 ivtnum = 613 814c 815c **** test 613 **** 816c 817 if (iczero) 36130, 6130, 36130 818 6130 continue 819 ivon02 = 8 820 ivon03 = 4 821 ivcomp = 24/(ivon02/ivon03) 822 go to 46130 82336130 ivdele = ivdele + 1 824 write (i02,80003) ivtnum 825 if (iczero) 46130, 6141, 46130 82646130 if (ivcomp - 12) 26130,16130,26130 82716130 ivpass = ivpass + 1 828 write (i02,80001) ivtnum 829 go to 6141 83026130 ivfail = ivfail + 1 831 ivcorr = 12 832 write (i02,80004) ivtnum, ivcomp ,ivcorr 833 6141 continue 834 ivtnum = 614 835c 836c **** test 614 **** 837c 838 if (iczero) 36140, 6140, 36140 839 6140 continue 840 ivon02 = 25 841 ivon03 = 5 842 ivcomp = 7150/(-(ivon02/ivon03)) 843 go to 46140 84436140 ivdele = ivdele + 1 845 write (i02,80003) ivtnum 846 if (iczero) 46140, 6151, 46140 84746140 if (ivcomp + 1430) 26140,16140,26140 84816140 ivpass = ivpass + 1 849 write (i02,80001) ivtnum 850 go to 6151 85126140 ivfail = ivfail + 1 852 ivcorr = -1430 853 write (i02,80004) ivtnum, ivcomp ,ivcorr 854c **** end of tests **** 855 6151 continue 856c 857c write page footings and run summaries 85899999 continue 859 write (i02,90002) 860 write (i02,90006) 861 write (i02,90002) 862 write (i02,90002) 863 write (i02,90007) 864 write (i02,90002) 865 write (i02,90008) ivfail 866 write (i02,90009) ivpass 867 write (i02,90010) ivdele 868c 869c 870c terminate routine execution 871 stop 872c 873c format statements for page headers 87490000 format (1h1) 87590002 format (1h ) 87690001 format (1h ,10x,34hfortran compiler validation system) 87790003 format (1h ,21x,11hversion 1.0) 87890004 format (1h ,10x,38hfor official use only - copyright 1978) 87990005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) 88090006 format (1h ,5x,46h----------------------------------------------) 88190011 format (1h ,18x,17hsubset level test) 882c 883c format statements for run summaries 88490008 format (1h ,15x,i5,19h errors encountered) 88590009 format (1h ,15x,i5,13h tests passed) 88690010 format (1h ,15x,i5,14h tests deleted) 887c 888c format statements for test results 88980001 format (1h ,4x,i5,7x,4hpass) 89080002 format (1h ,4x,i5,7x,4hfail) 89180003 format (1h ,4x,i5,7x,7hdeleted) 89280004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) 89380005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) 894c 89590007 format (1h ,20x,20hend of program fm040) 896 end 897