1c comment section 2c 3c fm098 4c 5c this routine tests intrinsic functions where the function type is 6c integer and the arguments are either integer or real. the real 7c and integer variables and the real and integer constants contain 8c both positive and negative values. the intrinsic functions tested 9c by fm098 include 10c type of 11c intrinsic function name argument function 12c ------------------ ---- -------- -------- 13c absolute value iabs integer integer 14c truncation int real integer 15c remaindering mod integer integer 16c choosing largest value max0 integer integer 17c max1 real integer 18c choosing smallest value min0 integer integer 19c min1 real integer 20c fix ifix real integer 21c transfer of sign isign integer integer 22c positive difference idim integer integer 23c 24c references 25c american national standard programming language fortran, 26c x3.9-1978 27c 28c section 4.1.2, type rules for data and procedure identifiers 29c section 15.3, intrinsic function 30c section 15.3.2, intrinsic functions and their reference 31c 32c 33c ********************************************************** 34c 35c a compiler validation system for the fortran language 36c based on specifications as defined in american national standard 37c programming language fortran x3.9-1978, has been developed by the 38c federal cobol compiler testing service. the fortran compiler 39c validation system (fcvs) consists of audit routines, their related 40c data, and an executive system. each audit routine is a fortran 41c program, subprogram or function which includes tests of specific 42c language elements and supporting procedures indicating the result 43c of executing these tests. 44c 45c this particular program/subprogram/function contains features 46c found only in the subset as defined in x3.9-1978. 47c 48c suggestions and comments should be forwarded to - 49c 50c department of the navy 51c federal cobol compiler testing service 52c washington, d.c. 20376 53c 54c ********************************************************** 55c 56c 57c 58c initialization section 59c 60c initialize constants 61c ************** 62c i01 contains the logical unit number for the card reader. 63 i01 = 5 64c i02 contains the logical unit number for the printer. 65 i02 = 6 66c system environment section 67c 68cx010 this card is replaced by contents of fexec x-010 control card. 69c the cx010 card is for overriding the program default i01 = 5 70c (unit number for card reader). 71cx011 this card is replaced by contents of fexec x-011 control card. 72c the cx011 card is for systems which require additional 73c fortran statements for files associated with cx010 above. 74c 75cx020 this card is replaced by contents of fexec x-020 control card. 76c the cx020 card is for overriding the program default i02 = 6 77c (unit number for printer). 78cx021 this card is replaced by contents of fexec x-021 control card. 79c the cx021 card is for systems which require additional 80c fortran statements for files associated with cx020 above. 81c 82 ivpass=0 83 ivfail=0 84 ivdele=0 85 iczero=0 86c 87c write page headers 88 write (i02,90000) 89 write (i02,90001) 90 write (i02,90002) 91 write (i02, 90002) 92 write (i02,90003) 93 write (i02,90002) 94 write (i02,90004) 95 write (i02,90002) 96 write (i02,90011) 97 write (i02,90002) 98 write (i02,90002) 99 write (i02,90005) 100 write (i02,90006) 101 write (i02,90002) 102c 103c test section 104c 105c test 907 through test 909 contain intrinsic function tests for 106c absolute value where argument and function are integer 107c 108 9071 continue 109 ivtnum = 907 110c 111c **** test 907 **** 112c 113 if (iczero) 39070, 9070, 39070 114 9070 continue 115 ivcomp = iabs (-382) 116 go to 49070 11739070 ivdele = ivdele + 1 118 write (i02,80003) ivtnum 119 if (iczero) 49070, 9081, 49070 12049070 if (ivcomp - 382) 29070,19070,29070 12119070 ivpass = ivpass + 1 122 write (i02,80001) ivtnum 123 go to 9081 12429070 ivfail = ivfail + 1 125 ivcorr = 382 126 write (i02,80004) ivtnum, ivcomp, ivcorr 127 9081 continue 128 ivtnum = 908 129c 130c **** test 908 **** 131c 132 if (iczero) 39080, 9080, 39080 133 9080 continue 134 ivon01 = 445 135 ivcomp = iabs (ivon01) 136 go to 49080 13739080 ivdele = ivdele + 1 138 write (i02,80003) ivtnum 139 if (iczero) 49080, 9091, 49080 14049080 if (ivcomp - 445) 29080,19080,29080 14119080 ivpass = ivpass + 1 142 write (i02,80001) ivtnum 143 go to 9091 14429080 ivfail = ivfail + 1 145 ivcorr = 445 146 write (i02,80004) ivtnum, ivcomp, ivcorr 147 9091 continue 148 ivtnum = 909 149c 150c **** test 909 **** 151c 152 if (iczero) 39090, 9090, 39090 153 9090 continue 154 ivon01 = -32176 155 ivcomp = iabs (ivon01) 156 go to 49090 15739090 ivdele = ivdele + 1 158 write (i02,80003) ivtnum 159 if (iczero) 49090, 9101, 49090 16049090 if (ivcomp - 32176) 29090,19090,29090 16119090 ivpass = ivpass + 1 162 write (i02,80001) ivtnum 163 go to 9101 16429090 ivfail = ivfail + 1 165 ivcorr = 32176 166 write (i02,80004) ivtnum, ivcomp, ivcorr 167c 168c test 910 through test 913 contain intrinsic function tests for 169c truncation where argument is real and function is integer 170c 171 9101 continue 172 ivtnum = 910 173c 174c **** test 910 **** 175c 176 if (iczero) 39100, 9100, 39100 177 9100 continue 178 ivcomp = int (38.2) 179 go to 49100 18039100 ivdele = ivdele + 1 181 write (i02,80003) ivtnum 182 if (iczero) 49100, 9111, 49100 18349100 if (ivcomp - 38) 29100,19100,29100 18419100 ivpass = ivpass + 1 185 write (i02,80001) ivtnum 186 go to 9111 18729100 ivfail = ivfail + 1 188 ivcorr = 38 189 write (i02,80004) ivtnum, ivcomp, ivcorr 190 9111 continue 191 ivtnum = 911 192c 193c **** test 911 **** 194c 195 if (iczero) 39110, 9110, 39110 196 9110 continue 197 rvon01 = -445.95 198 ivcomp = int (rvon01) 199 go to 49110 20039110 ivdele = ivdele + 1 201 write (i02,80003) ivtnum 202 if (iczero) 49110, 9121, 49110 20349110 if (ivcomp + 445) 29110,19110,29110 20419110 ivpass = ivpass + 1 205 write (i02,80001) ivtnum 206 go to 9121 20729110 ivfail = ivfail + 1 208 ivcorr = -445 209 write (i02,80004) ivtnum, ivcomp, ivcorr 210 9121 continue 211 ivtnum = 912 212c 213c **** test 912 **** 214c 215 if (iczero) 39120, 9120, 39120 216 9120 continue 217 rvon01 = 466.01 218 ivcomp = int (rvon01) 219 go to 49120 22039120 ivdele = ivdele + 1 221 write (i02,80003) ivtnum 222 if (iczero) 49120, 9131, 49120 22349120 if (ivcomp - 466) 29120,19120,29120 22419120 ivpass = ivpass + 1 225 write (i02,80001) ivtnum 226 go to 9131 22729120 ivfail = ivfail + 1 228 ivcorr = 466 229 write (i02,80004) ivtnum, ivcomp, ivcorr 230 9131 continue 231 ivtnum = 913 232c 233c **** test 913 **** 234c 235 if (iczero) 39130, 9130, 39130 236 9130 continue 237 rvon01 = 382e-1 238 ivcomp = int (rvon01) 239 go to 49130 24039130 ivdele = ivdele + 1 241 write (i02,80003) ivtnum 242 if (iczero) 49130, 9141, 49130 24349130 if (ivcomp - 38) 29130,19130,29130 24419130 ivpass = ivpass + 1 245 write (i02,80001) ivtnum 246 go to 9141 24729130 ivfail = ivfail + 1 248 ivcorr = 38 249 write (i02,80004) ivtnum, ivcomp, ivcorr 250c 251c test 914 through test 917 contain intrinsic function tests for 252c remaindering where arguments and function are integers 253c 254 9141 continue 255 ivtnum = 914 256c 257c **** test 914 **** 258c 259 if (iczero) 39140, 9140, 39140 260 9140 continue 261 ivcomp = mod (42,19) 262 go to 49140 26339140 ivdele = ivdele + 1 264 write (i02,80003) ivtnum 265 if (iczero) 49140, 9151, 49140 26649140 if (ivcomp - 4) 29140,19140,29140 26719140 ivpass = ivpass + 1 268 write (i02,80001) ivtnum 269 go to 9151 27029140 ivfail = ivfail + 1 271 ivcorr = 4 272 write (i02,80004) ivtnum, ivcomp, ivcorr 273 9151 continue 274 ivtnum = 915 275c 276c **** test 915 **** 277c 278 if (iczero) 39150, 9150, 39150 279 9150 continue 280 ivon01 = 6667 281 ivon02 = 2 282 ivcomp = mod (ivon01,ivon02) 283 go to 49150 28439150 ivdele = ivdele + 1 285 write (i02,80003) ivtnum 286 if (iczero) 49150, 9161, 49150 28749150 if (ivcomp - 1) 29150,19150,29150 28819150 ivpass = ivpass + 1 289 write (i02,80001) ivtnum 290 go to 9161 29129150 ivfail = ivfail + 1 292 ivcorr = 1 293 write (i02,80004) ivtnum, ivcomp, ivcorr 294 9161 continue 295 ivtnum = 916 296c 297c **** test 916 **** 298c 299 if (iczero) 39160, 9160, 39160 300 9160 continue 301 ivon01 = 225 302 ivon02 = 50 303 ivcomp = mod (ivon01,ivon02) 304 go to 49160 30539160 ivdele = ivdele + 1 306 write (i02,80003) ivtnum 307 if (iczero) 49160, 9171, 49160 30849160 if (ivcomp - 25) 29160,19160,29160 30919160 ivpass = ivpass + 1 310 write (i02,80001) ivtnum 311 go to 9171 31229160 ivfail = ivfail + 1 313 ivcorr = 25 314 write (i02,80004) ivtnum, ivcomp, ivcorr 315 9171 continue 316 ivtnum = 917 317c 318c **** test 917 **** 319c 320 if (iczero) 39170, 9170, 39170 321 9170 continue 322 ivon01 = -39 323 ivon02 = 500 324 ivcomp = mod (ivon01,ivon02) 325 go to 49170 32639170 ivdele = ivdele + 1 327 write (i02,80003) ivtnum 328 if (iczero) 49170, 9181, 49170 32949170 if (ivcomp + 39) 29170,19170,29170 33019170 ivpass = ivpass + 1 331 write (i02,80001) ivtnum 332 go to 9181 33329170 ivfail = ivfail + 1 334 ivcorr = -39 335 write (i02,80004) ivtnum, ivcomp, ivcorr 336c 337c test 918 and 919 contain intrinsic function tests for choosing 338c largest value where arguments and function are integer 339c 340 9181 continue 341 ivtnum = 918 342c 343c **** test 918 **** 344c 345 if (iczero) 39180, 9180, 39180 346 9180 continue 347 ivon01 = 317 348 ivon02 = -99 349 ivon03 = 1 350 ivcomp = max0 (263,ivon01,ivon02,ivon03) 351 go to 49180 35239180 ivdele = ivdele + 1 353 write (i02,80003) ivtnum 354 if (iczero) 49180, 9191, 49180 35549180 if (ivcomp - 317) 29180,19180,29180 35619180 ivpass = ivpass + 1 357 write (i02,80001) ivtnum 358 go to 9191 35929180 ivfail = ivfail + 1 360 ivcorr = 317 361 write (i02,80004) ivtnum, ivcomp, ivcorr 362 9191 continue 363 ivtnum = 919 364c 365c **** test 919 **** 366c 367 if (iczero) 39190, 9190, 39190 368 9190 continue 369 ivon01 = 2572 370 ivon02 = 2570 371 ivcomp = max0 (ivon01,ivon02) 372 go to 49190 37339190 ivdele = ivdele + 1 374 write (i02,80003) ivtnum 375 if (iczero) 49190, 9201, 49190 37649190 if (ivcomp - 2572) 29190,19190,29190 37719190 ivpass = ivpass + 1 378 write (i02,80001) ivtnum 379 go to 9201 38029190 ivfail = ivfail + 1 381 ivcorr = 2572 382 write (i02,80004) ivtnum, ivcomp, ivcorr 383c 384c test 920 and 921 contain intrinsic function tests for choosing 385c largest value where arguments are real and function is integer 386c 387 9201 continue 388 ivtnum = 920 389c 390c **** test 920 **** 391c 392 if (iczero) 39200, 9200, 39200 393 9200 continue 394 rvon01 = .326e+2 395 rvon02 = 22.075 396 rvon03 = 76e-1 397 ivcomp = max1 (rvon01,rvon02,rvon03) 398 go to 49200 39939200 ivdele = ivdele + 1 400 write (i02,80003) ivtnum 401 if (iczero) 49200, 9211, 49200 40249200 if (ivcomp - 32) 29200,19200,29200 40319200 ivpass = ivpass + 1 404 write (i02,80001) ivtnum 405 go to 9211 40629200 ivfail = ivfail + 1 407 ivcorr = 32 408 write (i02,80004) ivtnum, ivcomp, ivcorr 409 9211 continue 410 ivtnum = 921 411c 412c **** test 921 **** 413c 414 if (iczero) 39210, 9210, 39210 415 9210 continue 416 rvon01 = -6.3e2 417 rvon02 = -21.0 418 ivcomp = max1 (-463.3,rvon01,rvon02) 419 go to 49210 42039210 ivdele = ivdele + 1 421 write (i02,80003) ivtnum 422 if (iczero) 49210, 9221, 49210 42349210 if (ivcomp + 21) 29210,19210,29210 42419210 ivpass = ivpass + 1 425 write (i02,80001) ivtnum 426 go to 9221 42729210 ivfail = ivfail + 1 428 ivcorr = -21 429 write (i02,80004) ivtnum, ivcomp, ivcorr 430c 431c test 922 and 923 contain intrinsic function tests for choosing 432c smallest value where arguments and function are integer 433c 434 9221 continue 435 ivtnum = 922 436c 437c **** test 922 **** 438c 439 if (iczero) 39220, 9220, 39220 440 9220 continue 441 ivon01 = -75 442 ivon02 = -243 443 ivcomp = min0 (ivon01,ivon02) 444 go to 49220 44539220 ivdele = ivdele + 1 446 write (i02,80003) ivtnum 447 if (iczero) 49220, 9231, 49220 44849220 if (ivcomp + 243) 29220,19220,29220 44919220 ivpass = ivpass + 1 450 write (i02,80001) ivtnum 451 go to 9231 45229220 ivfail = ivfail + 1 453 ivcorr = -243 454 write (i02,80004) ivtnum, ivcomp, ivcorr 455 9231 continue 456 ivtnum = 923 457c 458c **** test 923 **** 459c 460 if (iczero) 39230, 9230, 39230 461 9230 continue 462 ivon01 = -11 463 ivon02 = 11 464 ivcomp = min0 (0,ivon01,ivon02) 465 go to 49230 46639230 ivdele = ivdele + 1 467 write (i02,80003) ivtnum 468 if (iczero) 49230, 9241, 49230 46949230 if (ivcomp + 11) 29230,19230,29230 47019230 ivpass = ivpass + 1 471 write (i02,80001) ivtnum 472 go to 9241 47329230 ivfail = ivfail + 1 474 ivcorr = -11 475 write (i02,80004) ivtnum, ivcomp, ivcorr 476c 477c test 924 and 925 contain intrinsic function tests for choosing 478c smallest value where arguments are real and function is integer 479c 480 9241 continue 481 ivtnum = 924 482c 483c **** test 924 **** 484c 485 if (iczero) 39240, 9240, 39240 486 9240 continue 487 rvon01 = 1.1111 488 rvon02 = 22.222 489 rvon03 = 333.33 490 ivcomp = min1 (rvon01,rvon02,rvon03) 491 go to 49240 49239240 ivdele = ivdele + 1 493 write (i02,80003) ivtnum 494 if (iczero) 49240, 9251, 49240 49549240 if (ivcomp - 1) 29240,19240,29240 49619240 ivpass = ivpass + 1 497 write (i02,80001) ivtnum 498 go to 9251 49929240 ivfail = ivfail + 1 500 ivcorr = 1 501 write (i02,80004) ivtnum, ivcomp, ivcorr 502 9251 continue 503 ivtnum = 925 504c 505c **** test 925 **** 506c 507 if (iczero) 39250, 9250, 39250 508 9250 continue 509 rvon01 = 28.8 510 rvon02 = 2.88e1 511 rvon03 = 288e-1 512 rvon04 = 35.0 513 ivcomp = min1 (rvon01,rvon02,rvon03,rvon04) 514 go to 49250 51539250 ivdele = ivdele + 1 516 write (i02,80003) ivtnum 517 if (iczero) 49250, 9261, 49250 51849250 if (ivcomp - 28) 29250,19250,29250 51919250 ivpass = ivpass + 1 520 write (i02,80001) ivtnum 521 go to 9261 52229250 ivfail = ivfail + 1 523 ivcorr = 28 524 write (i02,80004) ivtnum, ivcomp, ivcorr 525c 526c test 926 through test 929 contain the intrinsic function fix 527c which converts real arguments to integer function results 528c 529 9261 continue 530 ivtnum = 926 531c 532c **** test 926 **** 533c 534 if (iczero) 39260, 9260, 39260 535 9260 continue 536 ivcomp = ifix (-6.06) 537 go to 49260 53839260 ivdele = ivdele + 1 539 write (i02,80003) ivtnum 540 if (iczero) 49260, 9271, 49260 54149260 if (ivcomp + 6) 29260,19260,29260 54219260 ivpass = ivpass + 1 543 write (i02,80001) ivtnum 544 go to 9271 54529260 ivfail = ivfail + 1 546 ivcorr = -6 547 write (i02,80004) ivtnum, ivcomp, ivcorr 548 9271 continue 549 ivtnum = 927 550c 551c **** test 927 **** 552c 553 if (iczero) 39270, 9270, 39270 554 9270 continue 555 rvon01 = 71.01 556 ivcomp = ifix (rvon01) 557 go to 49270 55839270 ivdele = ivdele + 1 559 write (i02,80003) ivtnum 560 if (iczero) 49270, 9281, 49270 56149270 if (ivcomp - 71) 29270,19270,29270 56219270 ivpass = ivpass + 1 563 write (i02,80001) ivtnum 564 go to 9281 56529270 ivfail = ivfail + 1 566 ivcorr = 71 567 write (i02,80004) ivtnum, ivcomp, ivcorr 568 9281 continue 569 ivtnum = 928 570c 571c **** test 928 **** 572c 573 if (iczero) 39280, 9280, 39280 574 9280 continue 575 rvon01 = 3.211e2 576 ivcomp = ifix (rvon01) 577 go to 49280 57839280 ivdele = ivdele + 1 579 write (i02,80003) ivtnum 580 if (iczero) 49280, 9291, 49280 58149280 if (ivcomp - 321) 29280,19280,29280 58219280 ivpass = ivpass + 1 583 write (i02,80001) ivtnum 584 go to 9291 58529280 ivfail = ivfail + 1 586 ivcorr = 321 587 write (i02,80004) ivtnum, ivcomp, ivcorr 588 9291 continue 589 ivtnum = 929 590c 591c **** test 929 **** 592c 593 if (iczero) 39290, 9290, 39290 594 9290 continue 595 rvon01 = 777e-1 596 ivcomp = ifix (rvon01) 597 go to 49290 59839290 ivdele = ivdele + 1 599 write (i02,80003) ivtnum 600 if (iczero) 49290, 9301, 49290 60149290 if (ivcomp - 77) 29290,19290,29290 60219290 ivpass = ivpass + 1 603 write (i02,80001) ivtnum 604 go to 9301 60529290 ivfail = ivfail + 1 606 ivcorr = 77 607 write (i02,80004) ivtnum, ivcomp, ivcorr 608c 609c test 930 through test 932 contain intrinsic function tests for 610c transfer of sign where arguments and function are integer 611c 612 9301 continue 613 ivtnum = 930 614c 615c **** test 930 **** 616c 617 if (iczero) 39300, 9300, 39300 618 9300 continue 619 ivon01 = 643 620 ivcomp = isign (ivon01,-1) 621 go to 49300 62239300 ivdele = ivdele + 1 623 write (i02,80003) ivtnum 624 if (iczero) 49300, 9311, 49300 62549300 if (ivcomp + 643) 29300,19300,29300 62619300 ivpass = ivpass + 1 627 write (i02,80001) ivtnum 628 go to 9311 62929300 ivfail = ivfail + 1 630 ivcorr = -643 631 write (i02,80004) ivtnum, ivcomp, ivcorr 632 9311 continue 633 ivtnum = 931 634c 635c **** test 931 **** 636c 637 if (iczero) 39310, 9310, 39310 638 9310 continue 639 ivon01 = -22 640 ivon02 = 723 641 ivcomp = isign (ivon01,ivon02) 642 go to 49310 64339310 ivdele = ivdele + 1 644 write (i02,80003) ivtnum 645 if (iczero) 49310, 9321, 49310 64649310 if (ivcomp - 22) 29310,19310,29310 64719310 ivpass = ivpass + 1 648 write (i02,80001) ivtnum 649 go to 9321 65029310 ivfail = ivfail + 1 651 ivcorr = 22 652 write (i02,80004) ivtnum, ivcomp, ivcorr 653 9321 continue 654 ivtnum = 932 655c 656c **** test 932 **** 657c 658 if (iczero) 39320, 9320, 39320 659 9320 continue 660 ivon01 = 3532 661 ivon02 = 1 662 ivcomp = isign (ivon01,ivon02) 663 go to 49320 66439320 ivdele = ivdele + 1 665 write (i02,80003) ivtnum 666 if (iczero) 49320, 9331, 49320 66749320 if (ivcomp - 3532) 29320,19320,29320 66819320 ivpass = ivpass + 1 669 write (i02,80001) ivtnum 670 go to 9331 67129320 ivfail = ivfail + 1 672 ivcorr = 3532 673 write (i02,80004) ivtnum, ivcomp, ivcorr 674c 675c test 933 through test 936 contain intrinsic function tests for 676c positive difference where arguments and function are integers 677c 678 9331 continue 679 ivtnum = 933 680c 681c **** test 933 **** 682c 683 if (iczero) 39330, 9330, 39330 684 9330 continue 685 ivon01 = 222 686 ivcomp = idim (ivon01,1) 687 go to 49330 68839330 ivdele = ivdele + 1 689 write (i02,80003) ivtnum 690 if (iczero) 49330, 9341, 49330 69149330 if (ivcomp - 221) 29330,19330,29330 69219330 ivpass = ivpass + 1 693 write (i02,80001) ivtnum 694 go to 9341 69529330 ivfail = ivfail + 1 696 ivcorr = 221 697 write (i02,80004) ivtnum, ivcomp, ivcorr 698 9341 continue 699 ivtnum = 934 700c 701c **** test 934 **** 702c 703 if (iczero) 39340, 9340, 39340 704 9340 continue 705 ivon01 = 45 706 ivon02 = 41 707 ivcomp = idim (ivon01,ivon02) 708 go to 49340 70939340 ivdele = ivdele + 1 710 write (i02,80003) ivtnum 711 if (iczero) 49340, 9351, 49340 71249340 if (ivcomp - 4) 29340,19340,29340 71319340 ivpass = ivpass + 1 714 write (i02,80001) ivtnum 715 go to 9351 71629340 ivfail = ivfail + 1 717 ivcorr = 4 718 write (i02,80004) ivtnum, ivcomp, ivcorr 719 9351 continue 720 ivtnum = 935 721c 722c **** test 935 **** 723c 724 if (iczero) 39350, 9350, 39350 725 9350 continue 726 ivon01 = 2 727 ivon02 = 10 728 ivcomp = idim (ivon01,ivon02) 729 go to 49350 73039350 ivdele = ivdele + 1 731 write (i02,80003) ivtnum 732 if (iczero) 49350, 9361, 49350 73349350 if (ivcomp) 29350,19350,29350 73419350 ivpass = ivpass + 1 735 write (i02,80001) ivtnum 736 go to 9361 73729350 ivfail = ivfail + 1 738 ivcorr = 0 739 write (i02,80004) ivtnum, ivcomp, ivcorr 740 9361 continue 741 ivtnum = 936 742c 743c **** test 936 **** 744c 745 if (iczero) 39360, 9360, 39360 746 9360 continue 747 ivon01 = 165 748 ivon02 = -2 749 ivcomp = idim (ivon01,ivon02) 750 go to 49360 75139360 ivdele = ivdele + 1 752 write (i02,80003) ivtnum 753 if (iczero) 49360, 9371, 49360 75449360 if (ivcomp - 167) 29360,19360,29360 75519360 ivpass = ivpass + 1 756 write (i02,80001) ivtnum 757 go to 9371 75829360 ivfail = ivfail + 1 759 ivcorr = 167 760 write (i02,80004) ivtnum, ivcomp, ivcorr 761c 762c tests 937 and 938 contain expressions containing more than one 763c intrinsic function - the functions are integer and the arguments 764c are real and integer 765c 766 9371 continue 767 ivtnum = 937 768c 769c **** test 937 **** 770c 771 if (iczero) 39370, 9370, 39370 772 9370 continue 773 rvon01 = 33.3 774 ivon01 = -12 775 ivcomp = int (rvon01) + iabs (ivon01) 776 go to 49370 77739370 ivdele = ivdele + 1 778 write (i02,80003) ivtnum 779 if (iczero) 49370, 9381, 49370 78049370 if (ivcomp - 45) 29370,19370,29370 78119370 ivpass = ivpass + 1 782 write (i02,80001) ivtnum 783 go to 9381 78429370 ivfail = ivfail + 1 785 ivcorr = 45 786 write (i02,80004) ivtnum, ivcomp, ivcorr 787 9381 continue 788 ivtnum = 938 789c 790c **** test 938 **** 791c 792 if (iczero) 39380, 9380, 39380 793 9380 continue 794 ivon01 = 76 795 ivon02 = 21 796 ivon03 = 30 797 ivcomp = max0 (ivon01,ivon02,ivon03) - min0 (ivon01,ivon02,ivon03) 798 go to 49380 79939380 ivdele = ivdele + 1 800 write (i02,80003) ivtnum 801 if (iczero) 49380, 9391, 49380 80249380 if (ivcomp - 55) 29380,19380,29380 80319380 ivpass = ivpass + 1 804 write (i02,80001) ivtnum 805 go to 9391 80629380 ivfail = ivfail + 1 807 ivcorr = 55 808 write (i02,80004) ivtnum, ivcomp, ivcorr 809 9391 continue 810c 811c write page footings and run summaries 81299999 continue 813 write (i02,90002) 814 write (i02,90006) 815 write (i02,90002) 816 write (i02,90002) 817 write (i02,90007) 818 write (i02,90002) 819 write (i02,90008) ivfail 820 write (i02,90009) ivpass 821 write (i02,90010) ivdele 822c 823c 824c terminate routine execution 825 stop 826c 827c format statements for page headers 82890000 format (1h1) 82990002 format (1h ) 83090001 format (1h ,10x,34hfortran compiler validation system) 83190003 format (1h ,21x,11hversion 1.0) 83290004 format (1h ,10x,38hfor official use only - copyright 1978) 83390005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) 83490006 format (1h ,5x,46h----------------------------------------------) 83590011 format (1h ,18x,17hsubset level test) 836c 837c format statements for run summaries 83890008 format (1h ,15x,i5,19h errors encountered) 83990009 format (1h ,15x,i5,13h tests passed) 84090010 format (1h ,15x,i5,14h tests deleted) 841c 842c format statements for test results 84380001 format (1h ,4x,i5,7x,4hpass) 84480002 format (1h ,4x,i5,7x,4hfail) 84580003 format (1h ,4x,i5,7x,7hdeleted) 84680004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) 84780005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) 848c 84990007 format (1h ,20x,20hend of program fm098) 850 end 851