1c comment section 2c 3c fm060 4c 5c this routine contains basic arithmetic if statement tests for 6c the format 7c 8c if (e) k1,k2,k3 9c 10c where e is a simple real expression of the form 11c 12c real variable 13c real variable - real constant 14c real variable + real constant 15c 16c and k1, k2 and k3 are statement labels. 17c 18c this routine also tests arithmetic assignment statements of 19c the form 20c real variable = real constant 21c real variable = real variable 22c real variable = -real variable 23c 24c the real constants and real variables contain both positive and 25c negative values. 26c 27c a real datum is a processor approximation to the value of a 28c real number. it may assume positive, negative and zero values. 29c 30c a basic real constant is written as an integer part, a decimal 31c point, and a decimal fraction part in that order. both the 32c integer part and the decimal part are strings of digits; either 33c one of these strings may be empty but not both. the constant is 34c an approximation to the digit string interpreted as a decimal 35c numeral. 36c 37c a decimal exponent is written as the letter e, followed by an 38c optionally signed integer constant. 39c 40c a real constant is indicated by writing a basic real constant, 41c a basic real constant followed by a decimal exponent, or an 42c integer constant followed by a decimal exponent. 43c 44c references 45c american national standard programming language fortran, 46c x3.9-1978 47c 48c section 4.4, real type 49c section 4.4.1, real constant 50c section 6.1, arithmetic expressions 51c section 10.1, arithmetic assignment statement 52c section 11.4, arithmetic if statement 53c 54c ********************************************************** 55c 56c a compiler validation system for the fortran language 57c based on specifications as defined in american national standard 58c programming language fortran x3.9-1978, has been developed by the 59c federal cobol compiler testing service. the fortran compiler 60c validation system (fcvs) consists of audit routines, their related 61c data, and an executive system. each audit routine is a fortran 62c program, subprogram or function which includes tests of specific 63c language elements and supporting procedures indicating the result 64c of executing these tests. 65c 66c this particular program/subprogram/function contains features 67c found only in the subset as defined in x3.9-1978. 68c 69c suggestions and comments should be forwarded to - 70c 71c department of the navy 72c federal cobol compiler testing service 73c washington, d.c. 20376 74c 75c ********************************************************** 76c 77c 78c 79c initialization section 80c 81c initialize constants 82c ************** 83c i01 contains the logical unit number for the card reader. 84 i01 = 5 85c i02 contains the logical unit number for the printer. 86 i02 = 6 87c system environment section 88c 89cx010 this card is replaced by contents of fexec x-010 control card. 90c the cx010 card is for overriding the program default i01 = 5 91c (unit number for card reader). 92cx011 this card is replaced by contents of fexec x-011 control card. 93c the cx011 card is for systems which require additional 94c fortran statements for files associated with cx010 above. 95c 96cx020 this card is replaced by contents of fexec x-020 control card. 97c the cx020 card is for overriding the program default i02 = 6 98c (unit number for printer). 99cx021 this card is replaced by contents of fexec x-021 control card. 100c the cx021 card is for systems which require additional 101c fortran statements for files associated with cx020 above. 102c 103 ivpass=0 104 ivfail=0 105 ivdele=0 106 iczero=0 107c 108c write page headers 109 write (i02,90000) 110 write (i02,90001) 111 write (i02,90002) 112 write (i02, 90002) 113 write (i02,90003) 114 write (i02,90002) 115 write (i02,90004) 116 write (i02,90002) 117 write (i02,90011) 118 write (i02,90002) 119 write (i02,90002) 120 write (i02,90005) 121 write (i02,90006) 122 write (i02,90002) 123c 124c test section 125c 126c arithmetic if statement 127c 128c test 1 through test 3 contain basic arithmetic if statement tests 129c with a real variable as arithmetic expression. 130c 131 11 continue 132 ivtnum = 1 133c 134c **** test 1 **** 135c test 001 - less than zero branch expected 136c 137 if (iczero) 30010, 10, 30010 138 10 continue 139 rvcomp = 0.0 140 rvon01 = -1.0 141 if (rvon01) 12,40010, 40010 142 12 rvcomp = rvon01 143 go to 40010 14430010 ivdele = ivdele + 1 145 write (i02,80003) ivtnum 146 if (iczero) 40010, 21, 40010 14740010 if (rvcomp) 10010,20010,20010 14810010 ivpass = ivpass + 1 149 write (i02,80001) ivtnum 150 go to 21 15120010 ivfail = ivfail + 1 152 rvcorr = -1.0 153 write (i02,80005) ivtnum, rvcomp, rvcorr 154 21 continue 155 ivtnum = 2 156c 157c **** test 2 **** 158c test 002 - equal to zero branch expected 159c 160 if (iczero) 30020, 20, 30020 161 20 continue 162 rvcomp = 1.0 163 rvon01 = 0.0 164 if (rvon01) 40020,22,40020 165 22 rvcomp = rvon01 166 go to 40020 16730020 ivdele = ivdele + 1 168 write (i02,80003) ivtnum 169 if (iczero) 40020, 31, 40020 17040020 if (rvcomp) 20020,10020,20020 17110020 ivpass = ivpass + 1 172 write (i02,80001) ivtnum 173 go to 31 17420020 ivfail = ivfail + 1 175 rvcorr = 0.0 176 write (i02,80005) ivtnum, rvcomp, rvcorr 177 31 continue 178 ivtnum = 3 179c 180c **** test 3 **** 181c test 003 - greater than zero branch expected 182c 183 if (iczero) 30030, 30, 30030 184 30 continue 185 rvcomp = 0.0 186 rvon01 = 1.0 187 if (rvon01) 40030,40030,32 188 32 rvcomp = rvon01 189 go to 40030 19030030 ivdele = ivdele + 1 191 write (i02,80003) ivtnum 192 if (iczero) 40030, 41, 40030 19340030 if (rvcomp) 20030,20030,10030 19410030 ivpass = ivpass + 1 195 write (i02,80001) ivtnum 196 go to 41 19720030 ivfail = ivfail + 1 198 rvcorr = 1.0 199 write (i02,80005) ivtnum, rvcomp, rvcorr 200 41 continue 201 ivtnum = 4 202c 203c **** test 4 **** 204c test 004 - basic if statements test 205c these if statements are used in real variable test 206c verification. the arithmetic expressions are of the form 207c real variable - real constant 208c 209 if (iczero) 30040, 40, 30040 210 40 continue 211 rvcomp = 4.0 212 rvon01 = 1.0 213 if (rvon01 - .99995) 40040,42,42 214 42 if (rvon01 - 1.0005) 43,43,40040 215 43 rvcomp = 0.0 216 go to 40040 21730040 ivdele = ivdele + 1 218 write (i02,80003) ivtnum 219 if (iczero) 40040, 51, 40040 22040040 if (rvcomp) 20040,10040,20040 22110040 ivpass = ivpass + 1 222 write (i02,80001) ivtnum 223 go to 51 22420040 ivfail = ivfail + 1 225 rvcorr = 0.0 226 write (i02,80005) ivtnum, rvcomp, rvcorr 227 51 continue 228 ivtnum = 5 229c 230c **** test 5 **** 231c test 005 - basic if statements test 232c these if statements are used in real variable test 233c verification. the arithmetic expressions are of the form 234c real variable + real constant 235c 236 if (iczero) 30050, 50, 30050 237 50 continue 238 rvcomp = -1.0 239 rvon01 = -1.0 240 if (rvon01 + 1.0005) 40050,52,52 241 52 if (rvon01 + .99995) 53,53,40050 242 53 rvcomp = 0.0 243 go to 40050 24430050 ivdele = ivdele + 1 245 write (i02,80003) ivtnum 246 if (iczero) 40050, 61, 40050 24740050 if (rvcomp) 20050,10050,20050 24810050 ivpass = ivpass + 1 249 write (i02,80001) ivtnum 250 go to 61 25120050 ivfail = ivfail + 1 252 rvcorr = 0.0 253 write (i02,80005) ivtnum, rvcomp, rvcorr 254c 255c arithmetic assignment statement 256c 257c 258c test 006 through test 025 contain arithmetic assignment 259c statements of the form 260c real variable = real constant 261c 262c the three types of real constants are tested with positive 263c and negative values for the constants, and positive and negative 264c exponents. 265c 266c test 006 through test 011 - constant is basic real constant 267c 268 61 continue 269 ivtnum = 6 270c 271c **** test 6 **** 272c 273 if (iczero) 30060, 60, 30060 274 60 continue 275 rvcomp = 2.0 276 go to 40060 27730060 ivdele = ivdele + 1 278 write (i02,80003) ivtnum 279 if (iczero) 40060, 71, 40060 28040060 if (rvcomp - 1.9995) 20060,10060,40061 28140061 if (rvcomp - 2.0005) 10060,10060,20060 28210060 ivpass = ivpass + 1 283 write (i02,80001) ivtnum 284 go to 71 28520060 ivfail = ivfail + 1 286 rvcorr = 2.0 287 write (i02,80005) ivtnum, rvcomp, rvcorr 288 71 continue 289 ivtnum = 7 290c 291c **** test 7 **** 292c 293 if (iczero) 30070, 70, 30070 294 70 continue 295 rvcomp = 44.5 296 go to 40070 29730070 ivdele = ivdele + 1 298 write (i02,80003) ivtnum 299 if (iczero) 40070, 81, 40070 30040070 if (rvcomp - 44.495) 20070,10070,40071 30140071 if (rvcomp - 45.505) 10070,10070,20070 30210070 ivpass = ivpass + 1 303 write (i02,80001) ivtnum 304 go to 81 30520070 ivfail = ivfail + 1 306 rvcorr = 44.5 307 write (i02,80005) ivtnum, rvcomp, rvcorr 308 81 continue 309 ivtnum = 8 310c 311c **** test 8 **** 312c 313 if (iczero) 30080, 80, 30080 314 80 continue 315 rvcomp = -2.0 316 go to 40080 31730080 ivdele = ivdele + 1 318 write (i02,80003) ivtnum 319 if (iczero) 40080, 91, 40080 32040080 if (rvcomp + 2.0005) 20080,10080,40081 32140081 if (rvcomp + 1.9995) 10080,10080,20080 32210080 ivpass = ivpass + 1 323 write (i02,80001) ivtnum 324 go to 91 32520080 ivfail = ivfail + 1 326 rvcorr = -2.0 327 write (i02,80005) ivtnum, rvcomp, rvcorr 328 91 continue 329 ivtnum = 9 330c 331c **** test 9 **** 332c 333 if (iczero) 30090, 90, 30090 334 90 continue 335 rvcomp = 65001. 336 go to 40090 33730090 ivdele = ivdele + 1 338 write (i02,80003) ivtnum 339 if (iczero) 40090, 101, 40090 34040090 if (rvcomp - 64996.) 20090,10090,40091 34140091 if (rvcomp - 65006.) 10090,10090,20090 34210090 ivpass = ivpass + 1 343 write (i02,80001) ivtnum 344 go to 101 34520090 ivfail = ivfail + 1 346 rvcorr = 65001. 347 write (i02,80005) ivtnum, rvcomp, rvcorr 348 101 continue 349 ivtnum = 10 350c 351c **** test 10 **** 352c 353 if (iczero) 30100, 100, 30100 354 100 continue 355 rvcomp = .65001 356 go to 40100 35730100 ivdele = ivdele + 1 358 write (i02,80003) ivtnum 359 if (iczero) 40100, 111, 40100 36040100 if (rvcomp - .64996) 20100,10100,40101 36140101 if (rvcomp - .65006) 10100,10100,20100 36210100 ivpass = ivpass + 1 363 write (i02,80001) ivtnum 364 go to 111 36520100 ivfail = ivfail + 1 366 rvcorr = .65001 367 write (i02,80005) ivtnum, rvcomp, rvcorr 368 111 continue 369 ivtnum = 11 370c 371c **** test 11 **** 372c 373 if (iczero) 30110, 110, 30110 374 110 continue 375 rvcomp = -.33333 376 go to 40110 37730110 ivdele = ivdele + 1 378 write (i02,80003) ivtnum 379 if (iczero) 40110, 121, 40110 38040110 if (rvcomp + .33338) 20110,10110,40111 38140111 if (rvcomp + .33328) 10110,10110,20110 38210110 ivpass = ivpass + 1 383 write (i02,80001) ivtnum 384 go to 121 38520110 ivfail = ivfail + 1 386 rvcorr = -.33333 387 write (i02,80005) ivtnum, rvcomp, rvcorr 388c 389c test 012 through test 19 - real constant is basic real constant 390c - followed by decimal exponent 391c 392 121 continue 393 ivtnum = 12 394c 395c **** test 12 **** 396c 397 if (iczero) 30120, 120, 30120 398 120 continue 399 rvcomp = .2e+1 400 go to 40120 40130120 ivdele = ivdele + 1 402 write (i02,80003) ivtnum 403 if (iczero) 40120, 131, 40120 40440120 if (rvcomp - 1.9995) 20120,10120,40121 40540121 if (rvcomp - 2.0005) 10120,10120,20120 40610120 ivpass = ivpass + 1 407 write (i02,80001) ivtnum 408 go to 131 40920120 ivfail = ivfail + 1 410 rvcorr = 2.0 411 write (i02,80005) ivtnum, rvcomp, rvcorr 412 131 continue 413 ivtnum = 13 414c 415c **** test 13 **** 416c 417 if (iczero) 30130, 130, 30130 418 130 continue 419 rvcomp = 2.0e+0 420 go to 40130 42130130 ivdele = ivdele + 1 422 write (i02,80003) ivtnum 423 if (iczero) 40130, 141, 40130 42440130 if (rvcomp - 1.9995) 20130,10130,40131 42540131 if (rvcomp - 2.0005) 10130,10130,20130 42610130 ivpass = ivpass + 1 427 write (i02,80001) ivtnum 428 go to 141 42920130 ivfail = ivfail + 1 430 rvcorr = 2.0 431 write (i02,80005) ivtnum, rvcomp, rvcorr 432 141 continue 433 ivtnum = 14 434c 435c **** test 14 **** 436c 437 if (iczero) 30140, 140, 30140 438 140 continue 439 rvcomp = 445.0e-01 440 go to 40140 44130140 ivdele = ivdele + 1 442 write (i02,80003) ivtnum 443 if (iczero) 40140, 151, 40140 44440140 if (rvcomp - 44.495) 20140,10140,40141 44540141 if (rvcomp - 44.505) 10140,10140,20140 44610140 ivpass = ivpass + 1 447 write (i02,80001) ivtnum 448 go to 151 44920140 ivfail = ivfail + 1 450 rvcorr = 44.5 451 write (i02,80005) ivtnum, rvcomp, rvcorr 452 151 continue 453 ivtnum = 15 454c 455c **** test 15 **** 456c 457 if (iczero) 30150, 150, 30150 458 150 continue 459 rvcomp = 4.450e1 460 go to 40150 46130150 ivdele = ivdele + 1 462 write (i02,80003) ivtnum 463 if (iczero) 40150, 161, 40150 46440150 if (rvcomp - 44.495) 20150,10150,40151 46540151 if (rvcomp - 44.505) 10150,10150,20150 46610150 ivpass = ivpass + 1 467 write (i02,80001) ivtnum 468 go to 161 46920150 ivfail = ivfail + 1 470 rvcorr = 44.5 471 write (i02,80005) ivtnum, rvcomp, rvcorr 472 161 continue 473 ivtnum = 16 474c 475c **** test 16 **** 476c 477 if (iczero) 30160, 160, 30160 478 160 continue 479 rvcomp = 2.e+15 480 go to 40160 48130160 ivdele = ivdele + 1 482 write (i02,80003) ivtnum 483 if (iczero) 40160, 171, 40160 48440160 if (rvcomp - 1.9995e+15) 20160,10160,40161 48540161 if (rvcomp - 2.0005e+15) 10160,10160,20160 48610160 ivpass = ivpass + 1 487 write (i02,80001) ivtnum 488 go to 171 48920160 ivfail = ivfail + 1 490 rvcorr = 2.0e+15 491 write (i02,80005) ivtnum, rvcomp, rvcorr 492 171 continue 493 ivtnum = 17 494c 495c **** test 17 **** 496c 497 if (iczero) 30170, 170, 30170 498 170 continue 499 rvcomp = 44.5e-15 500 go to 40170 50130170 ivdele = ivdele + 1 502 write (i02,80003) ivtnum 503 if (iczero) 40170, 181, 40170 50440170 if (rvcomp - 44.495e-15) 20170,10170,40171 50540171 if (rvcomp - 44.505e-15) 10170,10170,20170 50610170 ivpass = ivpass + 1 507 write (i02,80001) ivtnum 508 go to 181 50920170 ivfail = ivfail + 1 510 rvcorr = 44.5e-15 511 write (i02,80005) ivtnum, rvcomp, rvcorr 512 181 continue 513 ivtnum = 18 514c 515c **** test 18 **** 516c 517 if (iczero) 30180, 180, 30180 518 180 continue 519 rvcomp = -4.45e0 520 go to 40180 52130180 ivdele = ivdele + 1 522 write (i02,80003) ivtnum 523 if (iczero) 40180, 191, 40180 52440180 if (rvcomp + 4.4505) 20180,10180,40181 52540181 if (rvcomp + 4.4495) 10180,10180,20180 52610180 ivpass = ivpass + 1 527 write (i02,80001) ivtnum 528 go to 191 52920180 ivfail = ivfail + 1 530 rvcorr = -4.45 531 write (i02,80005) ivtnum, rvcomp, rvcorr 532 191 continue 533 ivtnum = 19 534c 535c **** test 19 **** 536c 537 if (iczero) 30190, 190, 30190 538 190 continue 539 rvcomp = -6511.8e-0 540 go to 40190 54130190 ivdele = ivdele + 1 542 write (i02,80003) ivtnum 543 if (iczero) 40190, 201, 40190 54440190 if (rvcomp + 6512.3) 20190,10190,40191 54540191 if (rvcomp + 6511.3) 10190,10190,20190 54610190 ivpass = ivpass + 1 547 write (i02,80001) ivtnum 548 go to 201 54920190 ivfail = ivfail + 1 550 rvcorr = -6511.8 551 write (i02,80005) ivtnum, rvcomp, rvcorr 552c 553c test 020 through test 025 - integer constant followed 554c - by a decimal exponent 555c 556 201 continue 557 ivtnum = 20 558c 559c **** test 20 **** 560c 561 if (iczero) 30200, 200, 30200 562 200 continue 563 rvcomp = 2e+1 564 go to 40200 56530200 ivdele = ivdele + 1 566 write (i02,80003) ivtnum 567 if (iczero) 40200, 211, 40200 56840200 if (rvcomp - 19.995) 20200,10200,40201 56940201 if (rvcomp - 20.005) 10200,10200,20200 57010200 ivpass = ivpass + 1 571 write (i02,80001) ivtnum 572 go to 211 57320200 ivfail = ivfail + 1 574 rvcorr = 20.0 575 write (i02,80005) ivtnum, rvcomp, rvcorr 576 211 continue 577 ivtnum = 21 578c 579c **** test 21 **** 580c 581 if (iczero) 30210, 210, 30210 582 210 continue 583 rvcomp = 445e-02 584 go to 40210 58530210 ivdele = ivdele + 1 586 write (i02,80003) ivtnum 587 if (iczero) 40210, 221, 40210 58840210 if (rvcomp - 4.4495) 20210,10210,40211 58940211 if (rvcomp - 4.4505) 10210,10210,20210 59010210 ivpass = ivpass + 1 591 write (i02,80001) ivtnum 592 go to 221 59320210 ivfail = ivfail + 1 594 rvcorr = 4.45 595 write (i02,80005) ivtnum, rvcomp, rvcorr 596 221 continue 597 ivtnum = 22 598c 599c **** test 22 **** 600c 601 if (iczero) 30220, 220, 30220 602 220 continue 603 rvcomp = 7e3 604 go to 40220 60530220 ivdele = ivdele + 1 606 write (i02,80003) ivtnum 607 if (iczero) 40220, 231, 40220 60840220 if (rvcomp - 6999.0) 20220,10220,40221 60940221 if (rvcomp - 7001.0) 10220,10220,20220 61010220 ivpass = ivpass + 1 611 write (i02,80001) ivtnum 612 go to 231 61320220 ivfail = ivfail + 1 614 rvcorr = 7000.0 615 write (i02,80005) ivtnum, rvcomp, rvcorr 616 231 continue 617 ivtnum = 23 618c 619c **** test 23 **** 620c 621 if (iczero) 30230, 230, 30230 622 230 continue 623 rvcomp = 214 e 0 624 go to 40230 62530230 ivdele = ivdele + 1 626 write (i02,80003) ivtnum 627 if (iczero) 40230, 241, 40230 62840230 if (rvcomp - 213.95) 20230,10230,40231 62940231 if (rvcomp - 214.05) 10230,10230,20230 63010230 ivpass = ivpass + 1 631 write (i02,80001) ivtnum 632 go to 241 63320230 ivfail = ivfail + 1 634 rvcorr = 214.0 635 write (i02,80005) ivtnum, rvcomp, rvcorr 636 241 continue 637 ivtnum = 24 638c 639c **** test 24 **** 640c 641 if (iczero) 30240, 240, 30240 642 240 continue 643 rvcomp = -3276e+6 644 go to 40240 64530240 ivdele = ivdele + 1 646 write (i02,80003) ivtnum 647 if (iczero) 40240, 251, 40240 64840240 if (rvcomp + .32765e+10) 20240,10240,40241 64940241 if (rvcomp + .32755e+10) 10240,10240,20240 65010240 ivpass = ivpass + 1 651 write (i02,80001) ivtnum 652 go to 251 65320240 ivfail = ivfail + 1 654 rvcorr = -3276e+6 655 write (i02,80005) ivtnum, rvcomp, rvcorr 656 251 continue 657 ivtnum = 25 658c 659c **** test 25 **** 660c 661 if (iczero) 30250, 250, 30250 662 250 continue 663 rvcomp = -7e3 664 go to 40250 66530250 ivdele = ivdele + 1 666 write (i02,80003) ivtnum 667 if (iczero) 40250, 261, 40250 66840250 if (rvcomp + 7001.) 20250,10250,40251 66940251 if (rvcomp + 6999.) 10250,10250,20250 67010250 ivpass = ivpass + 1 671 write (i02,80001) ivtnum 672 go to 261 67320250 ivfail = ivfail + 1 674 rvcorr = -7000.0 675 write (i02,80005) ivtnum, rvcomp, rvcorr 676c 677c test 026 through test 028 contain arithmetic assignment statement 678c of the form real variable = real variable 679c 680 261 continue 681 ivtnum = 26 682c 683c **** test 26 **** 684c 685 if (iczero) 30260, 260, 30260 686 260 continue 687 rvon01 = .2e+1 688 rvcomp = rvon01 689 go to 40260 69030260 ivdele = ivdele + 1 691 write (i02,80003) ivtnum 692 if (iczero) 40260, 271, 40260 69340260 if (rvcomp - 1.9995) 20260,10260,40261 69440261 if (rvcomp - 2.0005) 10260,10260,20260 69510260 ivpass = ivpass + 1 696 write (i02,80001) ivtnum 697 go to 271 69820260 ivfail = ivfail + 1 699 rvcorr = 20.0 700 write (i02,80005) ivtnum, rvcomp, rvcorr 701 271 continue 702 ivtnum = 27 703c 704c **** test 27 **** 705c 706 if (iczero) 30270, 270, 30270 707 270 continue 708 rvon01 = -445.e-01 709 rvcomp = rvon01 710 go to 40270 71130270 ivdele = ivdele + 1 712 write (i02,80003) ivtnum 713 if (iczero) 40270, 281, 40270 71440270 if (rvcomp + 44.505) 20270,10270,40271 71540271 if (rvcomp + 44.495) 10270,10270,20270 71610270 ivpass = ivpass + 1 717 write (i02,80001) ivtnum 718 go to 281 71920270 ivfail = ivfail + 1 720 rvcorr = -44.5 721 write (i02,80005) ivtnum, rvcomp, rvcorr 722 281 continue 723 ivtnum = 28 724c 725c **** test 28 **** 726c 727 if (iczero) 30280, 280, 30280 728 280 continue 729 rvon01 = 7e3 730 rvcomp = rvon01 731 go to 40280 73230280 ivdele = ivdele + 1 733 write (i02,80003) ivtnum 734 if (iczero) 40280, 291, 40280 73540280 if (rvcomp - 6999.0) 20280,10280,40281 73640281 if (rvcomp-7001.0) 10280,10280,20280 73710280 ivpass = ivpass + 1 738 write (i02,80001) ivtnum 739 go to 291 74020280 ivfail = ivfail + 1 741 rvcorr = 7000.0 742c 743c test 029 through test 031 contain arithmetic assignment statement 744c of the form real variable = - real variable 745c 746 write (i02,80005) ivtnum, rvcomp, rvcorr 747 291 continue 748 ivtnum = 29 749c 750c **** test 29 **** 751c 752 if (iczero) 30290, 290, 30290 753 290 continue 754 rvon01 = .2e+1 755 rvcomp = -rvon01 756 go to 40290 75730290 ivdele = ivdele + 1 758 write (i02,80003) ivtnum 759 if (iczero) 40290, 301, 40290 76040290 if (rvcomp + 2.0005) 20290,10290,40291 76140291 if (rvcomp + 1.9995) 10290,10290,20290 76210290 ivpass = ivpass + 1 763 write (i02,80001) ivtnum 764 go to 301 76520290 ivfail = ivfail + 1 766 rvcorr = -2.0 767 write (i02,80005) ivtnum, rvcomp, rvcorr 768 301 continue 769 ivtnum = 30 770c 771c **** test 30 **** 772c 773 if (iczero) 30300, 300, 30300 774 300 continue 775 rvon01 = -445.e-01 776 rvcomp = -rvon01 777 go to 40300 77830300 ivdele = ivdele + 1 779 write (i02,80003) ivtnum 780 if (iczero) 40300, 311, 40300 78140300 if (rvcomp - 44.495) 20300,10300,40301 78240301 if (rvcomp - 44.505) 10300,10300,20300 78310300 ivpass = ivpass + 1 784 write (i02,80001) ivtnum 785 go to 311 78620300 ivfail = ivfail + 1 787 rvcorr = 44.5 788 write (i02,80005) ivtnum, rvcomp, rvcorr 789 311 continue 790 ivtnum = 31 791c 792c **** test 31 **** 793c 794 if (iczero) 30310, 310, 30310 795 310 continue 796 rvon01 = -.44559e1 797 rvcomp = -rvon01 798 go to 40310 79930310 ivdele = ivdele + 1 800 write (i02,80003) ivtnum 801 if (iczero) 40310, 321, 40310 80240310 if (rvcomp - 4.4554) 20310,10310,40311 80340311 if (rvcomp - 4.4564) 10310,10310,20310 80410310 ivpass = ivpass + 1 805 write (i02,80001) ivtnum 806 go to 321 80720310 ivfail = ivfail + 1 808 rvcorr = 4.4559 809 write (i02,80005) ivtnum, rvcomp, rvcorr 810c **** end of tests **** 811 321 continue 812c 813c write page footings and run summaries 81499999 continue 815 write (i02,90002) 816 write (i02,90006) 817 write (i02,90002) 818 write (i02,90002) 819 write (i02,90007) 820 write (i02,90002) 821 write (i02,90008) ivfail 822 write (i02,90009) ivpass 823 write (i02,90010) ivdele 824c 825c 826c terminate routine execution 827 stop 828c 829c format statements for page headers 83090000 format (1h1) 83190002 format (1h ) 83290001 format (1h ,10x,34hfortran compiler validation system) 83390003 format (1h ,21x,11hversion 1.0) 83490004 format (1h ,10x,38hfor official use only - copyright 1978) 83590005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) 83690006 format (1h ,5x,46h----------------------------------------------) 83790011 format (1h ,18x,17hsubset level test) 838c 839c format statements for run summaries 84090008 format (1h ,15x,i5,19h errors encountered) 84190009 format (1h ,15x,i5,13h tests passed) 84290010 format (1h ,15x,i5,14h tests deleted) 843c 844c format statements for test results 84580001 format (1h ,4x,i5,7x,4hpass) 84680002 format (1h ,4x,i5,7x,4hfail) 84780003 format (1h ,4x,i5,7x,7hdeleted) 84880004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) 84980005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) 850c 85190007 format (1h ,20x,20hend of program fm060) 852 end 853