Annotation of 43BSDTahoe/usr.bin/f77/testf77/tests/fm019.f, revision 1.1

1.1     ! root        1: c
        !             2: c     comment section.
        !             3: c
        !             4: c     fm019
        !             5: c
        !             6: c           this routine continues tests of the fortran logical if state
        !             7: c     by testing various forms of relational expressions with arithmetic
        !             8: c     expressions .  positive and negative signs are used in conjunction
        !             9: c     with parentheses. combinations of logical  .and.    .or.
        !            10: c     .not. are used to test the more complex expressions.
        !            11: c
        !            12: c      references
        !            13: c        american national standard programming language fortran,
        !            14: c              x3.9-1978
        !            15: c
        !            16: c        section 4.7.1, logical constant
        !            17: c        section 6, expressions
        !            18: c        section 11.5, logical if statement
        !            19: c
        !            20:       logical lctnt1, lctnt2
        !            21: c
        !            22: c      **********************************************************
        !            23: c
        !            24: c         a compiler validation system for the fortran language
        !            25: c     based on specifications as defined in american national standard
        !            26: c     programming language fortran x3.9-1978, has been developed by the
        !            27: c     federal cobol compiler testing service.  the fortran compiler
        !            28: c     validation system (fcvs) consists of audit routines, their related
        !            29: c     data, and an executive system.  each audit routine is a fortran
        !            30: c     program, subprogram or function which includes tests of specific
        !            31: c     language elements and supporting procedures indicating the result
        !            32: c     of executing these tests.
        !            33: c
        !            34: c         this particular program/subprogram/function contains features
        !            35: c     found only in the subset as defined in x3.9-1978.
        !            36: c
        !            37: c         suggestions and comments should be forwarded to -
        !            38: c
        !            39: c                  department of the navy
        !            40: c                  federal cobol compiler testing service
        !            41: c                  washington, d.c.  20376
        !            42: c
        !            43: c      **********************************************************
        !            44: c
        !            45: c
        !            46: c
        !            47: c     initialization section
        !            48: c
        !            49: c     initialize constants
        !            50: c      **************
        !            51: c     i01 contains the logical unit number for the card reader.
        !            52:       i01 = 5
        !            53: c     i02 contains the logical unit number for the printer.
        !            54:       i02 = 6
        !            55: c     system environment section
        !            56: c
        !            57: cx010    this card is replaced by contents of fexec x-010 control card.
        !            58: c     the cx010 card is for overriding the program default i01 = 5
        !            59: c     (unit number for card reader).
        !            60: cx011    this card is replaced by contents of fexec x-011 control card.
        !            61: c     the cx011 card is for systems which require additional
        !            62: c     fortran statements for files associated with cx010 above.
        !            63: c
        !            64: cx020    this card is replaced by contents of fexec x-020 control card.
        !            65: c     the cx020 card is for overriding the program default i02 = 6
        !            66: c     (unit number for printer).
        !            67: cx021    this card is replaced by contents of fexec x-021 control card.
        !            68: c     the cx021 card is for systems which require additional
        !            69: c     fortran statements for files associated with cx020 above.
        !            70: c
        !            71:       ivpass=0
        !            72:       ivfail=0
        !            73:       ivdele=0
        !            74:       iczero=0
        !            75: c
        !            76: c     write page headers
        !            77:       write (i02,90000)
        !            78:       write (i02,90001)
        !            79:       write (i02,90002)
        !            80:       write (i02, 90002)
        !            81:       write (i02,90003)
        !            82:       write (i02,90002)
        !            83:       write (i02,90004)
        !            84:       write (i02,90002)
        !            85:       write (i02,90011)
        !            86:       write (i02,90002)
        !            87:       write (i02,90002)
        !            88:       write (i02,90005)
        !            89:       write (i02,90006)
        !            90:       write (i02,90002)
        !            91:       ivtnum = 530
        !            92: c
        !            93: c      ****  test 530  ****
        !            94: c     test 530  - test of positively signed term   +(ic) (ro) -(ic)
        !            95: c           .lt.  false path
        !            96: c
        !            97:       if (iczero) 35300, 5300, 35300
        !            98:  5300 continue
        !            99:       ivon01 = 1
        !           100:       if ( +3 .lt. -3)  ivon01 = 0
        !           101:       go to 45300
        !           102: 35300 ivdele = ivdele + 1
        !           103:       write (i02,80003) ivtnum
        !           104:       if (iczero) 45300, 5311, 45300
        !           105: 45300 if ( ivon01 - 1 )  25300, 15300, 25300
        !           106: 15300 ivpass = ivpass + 1
        !           107:       write (i02,80001) ivtnum
        !           108:       go to 5311
        !           109: 25300 ivfail = ivfail + 1
        !           110:       ivcomp = ivon01
        !           111:       ivcorr = 1
        !           112:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           113:  5311 continue
        !           114:       ivtnum = 531
        !           115: c
        !           116: c      ****  test 531  ****
        !           117: c     test 531  -  test of signed zero     .lt.  false path
        !           118: c
        !           119: c
        !           120:       if (iczero) 35310, 5310, 35310
        !           121:  5310 continue
        !           122:       ivon01 = 1
        !           123:       if ( +0 .lt. -0 )  ivon01 = 0
        !           124:       go to 45310
        !           125: 35310 ivdele = ivdele + 1
        !           126:       write (i02,80003) ivtnum
        !           127:       if (iczero) 45310, 5321, 45310
        !           128: 45310 if ( ivon01 - 1 )  25310, 15310, 25310
        !           129: 15310 ivpass = ivpass + 1
        !           130:       write (i02,80001) ivtnum
        !           131:       go to 5321
        !           132: 25310 ivfail = ivfail + 1
        !           133:       ivcomp = ivon01
        !           134:       ivcorr = 1
        !           135:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           136:  5321 continue
        !           137:       ivtnum = 532
        !           138: c
        !           139: c      ****  test 532  ****
        !           140: c     test 532  -  test of signed zero  .le.  true path
        !           141: c
        !           142: c
        !           143:       if (iczero) 35320, 5320, 35320
        !           144:  5320 continue
        !           145:       ivon01 = 0
        !           146:       if ( +0 .le. -0 )  ivon01 = 1
        !           147:       go to 45320
        !           148: 35320 ivdele = ivdele + 1
        !           149:       write (i02,80003) ivtnum
        !           150:       if (iczero) 45320, 5331, 45320
        !           151: 45320 if ( ivon01 - 1 )  25320, 15320, 25320
        !           152: 15320 ivpass = ivpass + 1
        !           153:       write (i02,80001) ivtnum
        !           154:       go to 5331
        !           155: 25320 ivfail = ivfail + 1
        !           156:       ivcomp = ivon01
        !           157:       ivcorr = 1
        !           158:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           159:  5331 continue
        !           160:       ivtnum = 533
        !           161: c
        !           162: c      ****  test 533  ****
        !           163: c     test 533  -  test of signed zero  .eq.  true path
        !           164: c
        !           165: c
        !           166:       if (iczero) 35330, 5330, 35330
        !           167:  5330 continue
        !           168:       ivon01 = 0
        !           169:       if ( +0 .eq. -0 )  ivon01 = 1
        !           170:       go to 45330
        !           171: 35330 ivdele = ivdele + 1
        !           172:       write (i02,80003) ivtnum
        !           173:       if (iczero) 45330, 5341, 45330
        !           174: 45330 if ( ivon01 - 1 )  25330, 15330, 25330
        !           175: 15330 ivpass = ivpass + 1
        !           176:       write (i02,80001) ivtnum
        !           177:       go to 5341
        !           178: 25330 ivfail = ivfail + 1
        !           179:       ivcomp = ivon01
        !           180:       ivcorr = 1
        !           181:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           182:  5341 continue
        !           183:       ivtnum = 534
        !           184: c
        !           185: c      ****  test 534  ****
        !           186: c     test 534  -  test of signed zero  .ne.  false path
        !           187: c
        !           188: c
        !           189:       if (iczero) 35340, 5340, 35340
        !           190:  5340 continue
        !           191:       ivon01 = 1
        !           192:       if ( +0 .ne. -0 )  ivon01 = 0
        !           193:       go to 45340
        !           194: 35340 ivdele = ivdele + 1
        !           195:       write (i02,80003) ivtnum
        !           196:       if (iczero) 45340, 5351, 45340
        !           197: 45340 if ( ivon01 - 1 )  25340, 15340, 25340
        !           198: 15340 ivpass = ivpass + 1
        !           199:       write (i02,80001) ivtnum
        !           200:       go to 5351
        !           201: 25340 ivfail = ivfail + 1
        !           202:       ivcomp = ivon01
        !           203:       ivcorr = 1
        !           204:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           205:  5351 continue
        !           206:       ivtnum = 535
        !           207: c
        !           208: c      ****  test 535  ****
        !           209: c     test 535  -  test of signed zero  .ge.  true path
        !           210: c
        !           211: c
        !           212:       if (iczero) 35350, 5350, 35350
        !           213:  5350 continue
        !           214:       ivon01 = 0
        !           215:       if ( +0 .ge. -0 )  ivon01 = 1
        !           216:       go to 45350
        !           217: 35350 ivdele = ivdele + 1
        !           218:       write (i02,80003) ivtnum
        !           219:       if (iczero) 45350, 5361, 45350
        !           220: 45350 if ( ivon01 - 1 )  25350, 15350, 25350
        !           221: 15350 ivpass = ivpass + 1
        !           222:       write (i02,80001) ivtnum
        !           223:       go to 5361
        !           224: 25350 ivfail = ivfail + 1
        !           225:       ivcomp = ivon01
        !           226:       ivcorr = 1
        !           227:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           228:  5361 continue
        !           229:       ivtnum = 536
        !           230: c
        !           231: c      ****  test 536  ****
        !           232: c     test 536  -  test of signed zero  .gt.  false path
        !           233: c
        !           234: c
        !           235:       if (iczero) 35360, 5360, 35360
        !           236:  5360 continue
        !           237:       ivon01 = 1
        !           238:       if ( +0 .gt. -0 )  ivon01 = 0
        !           239:       go to 45360
        !           240: 35360 ivdele = ivdele + 1
        !           241:       write (i02,80003) ivtnum
        !           242:       if (iczero) 45360, 5371, 45360
        !           243: 45360 if ( ivon01 - 1 )  25360, 15360, 25360
        !           244: 15360 ivpass = ivpass + 1
        !           245:       write (i02,80001) ivtnum
        !           246:       go to 5371
        !           247: 25360 ivfail = ivfail + 1
        !           248:       ivcomp = ivon01
        !           249:       ivcorr = 1
        !           250:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           251:  5371 continue
        !           252:       ivtnum = 537
        !           253: c
        !           254: c      ****  test 537  ****
        !           255: c     test 537  -  test of +32767 .eq. -32766  false path
        !           256: c
        !           257: c
        !           258:       if (iczero) 35370, 5370, 35370
        !           259:  5370 continue
        !           260:       ivon01 = 1
        !           261:       if ( +32767 .eq. -32766 )  ivon01 = 0
        !           262:       go to 45370
        !           263: 35370 ivdele = ivdele + 1
        !           264:       write (i02,80003) ivtnum
        !           265:       if (iczero) 45370, 5381, 45370
        !           266: 45370 if ( ivon01 - 1 )  25370, 15370, 25370
        !           267: 15370 ivpass = ivpass + 1
        !           268:       write (i02,80001) ivtnum
        !           269:       go to 5381
        !           270: 25370 ivfail = ivfail + 1
        !           271:       ivcomp = ivon01
        !           272:       ivcorr = 1
        !           273:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           274:  5381 continue
        !           275:       ivtnum = 538
        !           276: c
        !           277: c      ****  test 538  ****
        !           278: c     test 538  -  tests minus sign with integer variables
        !           279: c           relational expression uses  .le.  true path
        !           280: c
        !           281: c
        !           282:       if (iczero) 35380, 5380, 35380
        !           283:  5380 continue
        !           284:       ivon01 = 0
        !           285:       ivon02 = 3
        !           286:       if ( -ivon02 .le. -ivon02 )  ivon01 = 1
        !           287:       go to 45380
        !           288: 35380 ivdele = ivdele + 1
        !           289:       write (i02,80003) ivtnum
        !           290:       if (iczero) 45380, 5391, 45380
        !           291: 45380 if ( ivon01 - 1 )  25380, 15380, 25380
        !           292: 15380 ivpass = ivpass + 1
        !           293:       write (i02,80001) ivtnum
        !           294:       go to 5391
        !           295: 25380 ivfail = ivfail + 1
        !           296:       ivcomp = ivon01
        !           297:       ivcorr = 1
        !           298:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           299:  5391 continue
        !           300:       ivtnum = 539
        !           301: c
        !           302: c      ****  test 539  ****
        !           303: c     test 539  -  test is like test 538   uses  .ge.  true path
        !           304: c
        !           305: c
        !           306:       if (iczero) 35390, 5390, 35390
        !           307:  5390 continue
        !           308:       ivon01 = 0
        !           309:       ivon02 = 32766
        !           310:       if ( -ivon02 .ge. -ivon02 )  ivon01 = 1
        !           311:       go to 45390
        !           312: 35390 ivdele = ivdele + 1
        !           313:       write (i02,80003) ivtnum
        !           314:       if (iczero) 45390, 5401, 45390
        !           315: 45390 if ( ivon01 - 1 )  25390, 15390, 25390
        !           316: 15390 ivpass = ivpass + 1
        !           317:       write (i02,80001) ivtnum
        !           318:       go to 5401
        !           319: 25390 ivfail = ivfail + 1
        !           320:       ivcomp = ivon01
        !           321:       ivcorr = 1
        !           322:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           323:  5401 continue
        !           324:       ivtnum = 540
        !           325: c
        !           326: c      ****  test 540  ****
        !           327: c     test 540  -  integer exponientiation and minus sign  uses .ne.
        !           328: c           false path
        !           329: c
        !           330: c
        !           331:       if (iczero) 35400, 5400, 35400
        !           332:  5400 continue
        !           333:       ivon01 = 1
        !           334:       ivon02 = 3
        !           335:       if ( -ivon02 ** 3 .ne. -27 )  ivon01 = 0
        !           336:       go to 45400
        !           337: 35400 ivdele = ivdele + 1
        !           338:       write (i02,80003) ivtnum
        !           339:       if (iczero) 45400, 5411, 45400
        !           340: 45400 if ( ivon01 - 1 )  25400, 15400, 25400
        !           341: 15400 ivpass = ivpass + 1
        !           342:       write (i02,80001) ivtnum
        !           343:       go to 5411
        !           344: 25400 ivfail = ivfail + 1
        !           345:       ivcomp = ivon01
        !           346:       ivcorr = 1
        !           347:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           348:  5411 continue
        !           349:       ivtnum = 541
        !           350: c
        !           351: c      ****  test 541  ****
        !           352: c     test 541  -  like test 540  uses  .le.  true path
        !           353: c
        !           354: c
        !           355:       if (iczero) 35410, 5410, 35410
        !           356:  5410 continue
        !           357:       ivon01 = 0
        !           358:       ivon02 = 3
        !           359:       if ( -3 ** ivon02  .le. -27 )  ivon01 = 1
        !           360:       go to 45410
        !           361: 35410 ivdele = ivdele + 1
        !           362:       write (i02,80003) ivtnum
        !           363:       if (iczero) 45410, 5421, 45410
        !           364: 45410 if ( ivon01 - 1 )  25410, 15410, 25410
        !           365: 15410 ivpass = ivpass + 1
        !           366:       write (i02,80001) ivtnum
        !           367:       go to 5421
        !           368: 25410 ivfail = ivfail + 1
        !           369:       ivcomp = ivon01
        !           370:       ivcorr = 1
        !           371:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           372:  5421 continue
        !           373:       ivtnum = 542
        !           374: c
        !           375: c      ****  test 542  ****
        !           376: c     test 542  -  integer exponientiation and multiplication
        !           377: c           uses  .eq.  true path
        !           378: c
        !           379: c
        !           380:       if (iczero) 35420, 5420, 35420
        !           381:  5420 continue
        !           382:       ivon01 = 0
        !           383:       ivon02 = 3
        !           384:       ivon03 = 27
        !           385:       if ( -ivon02 ** 2 * ivon02 .eq. -ivon03 )  ivon01 = 1
        !           386:       go to 45420
        !           387: 35420 ivdele = ivdele + 1
        !           388:       write (i02,80003) ivtnum
        !           389:       if (iczero) 45420, 5431, 45420
        !           390: 45420 if ( ivon01 - 1 )  25420, 15420, 25420
        !           391: 15420 ivpass = ivpass + 1
        !           392:       write (i02,80001) ivtnum
        !           393:       go to 5431
        !           394: 25420 ivfail = ivfail + 1
        !           395:       ivcomp = ivon01
        !           396:       ivcorr = 1
        !           397:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           398:  5431 continue
        !           399:       ivtnum = 543
        !           400: c
        !           401: c      ****  test 543  ****
        !           402: c     test 543  -  integer exponientiation and division
        !           403: c           uses  .lt.  true path
        !           404: c
        !           405: c
        !           406:       if (iczero) 35430, 5430, 35430
        !           407:  5430 continue
        !           408:       ivon01 = 0
        !           409:       ivon02 = 587
        !           410:       ivon03 = 3
        !           411:       ivon04 = 3
        !           412:       if ( -ivon02/ivon04 ** 3 .lt. -3 ** ivon03/ivon02 )  ivon01 = 1
        !           413:       go to 45430
        !           414: 35430 ivdele = ivdele + 1
        !           415:       write (i02,80003) ivtnum
        !           416:       if (iczero) 45430, 5441, 45430
        !           417: 45430 if ( ivon01 - 1 )  25430, 15430, 25430
        !           418: 15430 ivpass = ivpass + 1
        !           419:       write (i02,80001) ivtnum
        !           420:       go to 5441
        !           421: 25430 ivfail = ivfail + 1
        !           422:       ivcomp = ivon01
        !           423:       ivcorr = 1
        !           424:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           425:  5441 continue
        !           426:       ivtnum = 544
        !           427: c
        !           428: c      ****  test 544  ****
        !           429: c     test 544  -  integer addition and subtraction
        !           430: c           uses  .eq.  true path
        !           431: c
        !           432: c
        !           433:       if (iczero) 35440, 5440, 35440
        !           434:  5440 continue
        !           435:       ivon01 = 0
        !           436:       ivon02 = 3
        !           437:       ivon03 = 587
        !           438:       if ( ivon02 - ivon03 .eq. -ivon03 + ivon02 )  ivon01 = 1
        !           439:       go to 45440
        !           440: 35440 ivdele = ivdele + 1
        !           441:       write (i02,80003) ivtnum
        !           442:       if (iczero) 45440, 5451, 45440
        !           443: 45440 if ( ivon01 - 1 )  25440, 15440, 25440
        !           444: 15440 ivpass = ivpass + 1
        !           445:       write (i02,80001) ivtnum
        !           446:       go to 5451
        !           447: 25440 ivfail = ivfail + 1
        !           448:       ivcomp = ivon01
        !           449:       ivcorr = 1
        !           450:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           451:  5451 continue
        !           452:       ivtnum = 545
        !           453: c
        !           454: c      ****  test 545  ****
        !           455: c     test 545  -  integer addition and subtraction with parentheses
        !           456: c           uses  .eq.  true path  like test 544
        !           457: c
        !           458: c
        !           459:       if (iczero) 35450, 5450, 35450
        !           460:  5450 continue
        !           461:       ivon01 = 0
        !           462:       ivon02 = 3
        !           463:       ivon03 = 587
        !           464:       if ( (ivon02 - ivon03) .eq. (-ivon03 + ivon02) )  ivon01 = 1
        !           465:       go to 45450
        !           466: 35450 ivdele = ivdele + 1
        !           467:       write (i02,80003) ivtnum
        !           468:       if (iczero) 45450, 5461, 45450
        !           469: 45450 if ( ivon01 - 1 ) 25450, 15450, 25450
        !           470: 15450 ivpass = ivpass + 1
        !           471:       write (i02,80001) ivtnum
        !           472:       go to 5461
        !           473: 25450 ivfail = ivfail + 1
        !           474:       ivcomp = ivon01
        !           475:       ivcorr = 1
        !           476:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           477:  5461 continue
        !           478:       ivtnum = 546
        !           479: c
        !           480: c      ****  test 546  ****
        !           481: c     test 546  -  integer exponientiation and division with parens
        !           482: c           uses  .lt.  true path
        !           483: c
        !           484: c
        !           485:       if (iczero) 35460, 5460, 35460
        !           486:  5460 continue
        !           487:       ivon01 = 0
        !           488:       ivon02 = 587
        !           489:       ivon03 = 3
        !           490:       ivon04 = 3
        !           491:       if ((-ivon02/(ivon04**3)).lt.((-3**ivon03)/ivon02))ivon01=1
        !           492:       go to 45460
        !           493: 35460 ivdele = ivdele + 1
        !           494:       write (i02,80003) ivtnum
        !           495:       if (iczero) 45460, 5471, 45460
        !           496: 45460 if ( ivon01 - 1 )  25460, 15460, 25460
        !           497: 15460 ivpass = ivpass + 1
        !           498:       write (i02,80001) ivtnum
        !           499:       go to 5471
        !           500: 25460 ivfail = ivfail + 1
        !           501:       ivcomp = ivon01
        !           502:       ivcorr = 1
        !           503:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           504:  5471 continue
        !           505:       ivtnum = 547
        !           506: c
        !           507: c      ****  test 547  ****
        !           508: c     test 547  -  integer multiplication with parentheses  .lt.  false
        !           509: c
        !           510: c
        !           511:       if (iczero) 35470, 5470, 35470
        !           512:  5470 continue
        !           513:       ivon01 = 1
        !           514:       ivon02 = 587
        !           515:       if ((-3)*(-3).lt.(-ivon02))ivon01=0
        !           516:       go to 45470
        !           517: 35470 ivdele = ivdele + 1
        !           518:       write (i02,80003) ivtnum
        !           519:       if (iczero) 45470, 5481, 45470
        !           520: 45470 if ( ivon01 - 1 )  25470, 15470, 25470
        !           521: 15470 ivpass = ivpass + 1
        !           522:       write (i02,80001) ivtnum
        !           523:       go to 5481
        !           524: 25470 ivfail = ivfail + 1
        !           525:       ivcomp = ivon01
        !           526:       ivcorr = 1
        !           527:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           528:  5481 continue
        !           529:       ivtnum = 548
        !           530: c
        !           531: c      ****  test 548  ****
        !           532: c     test 548  -  integer exponientiation, minus signs, and parentheses
        !           533: c           uses  .le.  true path
        !           534: c
        !           535: c
        !           536:       if (iczero) 35480, 5480, 35480
        !           537:  5480 continue
        !           538:       ivon01 = 0
        !           539:       ivon02 = 3
        !           540:       ivon03 = 27
        !           541:       if ( ((-ivon02) ** ivon02 .le. (-ivon03)))  ivon01 = 1
        !           542:       go to 45480
        !           543: 35480 ivdele = ivdele + 1
        !           544:       write (i02,80003) ivtnum
        !           545:       if (iczero) 45480, 5491, 45480
        !           546: 45480 if ( ivon01 - 1 )  25480, 15480, 25480
        !           547: 15480 ivpass = ivpass + 1
        !           548:       write (i02,80001) ivtnum
        !           549:       go to 5491
        !           550: 25480 ivfail = ivfail + 1
        !           551:       ivcomp = ivon01
        !           552:       ivcorr = 1
        !           553:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           554:  5491 continue
        !           555:       ivtnum = 549
        !           556: c
        !           557: c      ****  test 549  ****
        !           558: c     test 549  -  test the order of integer arithmetic operations
        !           559: c           uses integer exponientiation, addition, multiplication,
        !           560: c           and parentheses.  also uses  .eq.  true path
        !           561: c           see section 6.1, arithmetic expressions.
        !           562: c
        !           563: c
        !           564:       if (iczero) 35490, 5490, 35490
        !           565:  5490 continue
        !           566:       ivon01 = 0
        !           567:       ivon02 = 3
        !           568:       if(ivon02 * ivon02/(ivon02+ivon02)**ivon02+ivon02 .eq. 3) ivon01=1
        !           569:       go to 45490
        !           570: 35490 ivdele = ivdele + 1
        !           571:       write (i02,80003) ivtnum
        !           572:       if (iczero) 45490, 5501, 45490
        !           573: 45490 if ( ivon01 - 1 )  25490, 15490, 25490
        !           574: 15490 ivpass = ivpass + 1
        !           575:       write (i02,80001) ivtnum
        !           576:       go to 5501
        !           577: 25490 ivfail = ivfail + 1
        !           578:       ivcomp = ivon01
        !           579:       ivcorr = 1
        !           580:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           581:  5501 continue
        !           582:       ivtnum = 550
        !           583: c
        !           584: c      ****  test 550  ****
        !           585: c     test 550  -  combination of logical  .not. and  .and.
        !           586: c           .not. (lp) .and. .not. (lp)
        !           587: c           true path
        !           588: c
        !           589: c
        !           590:       if (iczero) 35500, 5500, 35500
        !           591:  5500 continue
        !           592:       ivon01 = 0
        !           593:       lctnt1 = .false.
        !           594:       if ( .not. .false. .and. .not. lctnt1 )  ivon01 = 1
        !           595:       go to 45500
        !           596: 35500 ivdele = ivdele + 1
        !           597:       write (i02,80003) ivtnum
        !           598:       if (iczero) 45500, 5511, 45500
        !           599: 45500 if ( ivon01 - 1 )  25500, 15500, 25500
        !           600: 15500 ivpass = ivpass + 1
        !           601:       write (i02,80001) ivtnum
        !           602:       go to 5511
        !           603: 25500 ivfail = ivfail + 1
        !           604:       ivcomp = ivon01
        !           605:       ivcorr = 1
        !           606:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           607:  5511 continue
        !           608:       ivtnum = 551
        !           609: c
        !           610: c      ****  test 551  ****
        !           611: c     test 551  -  combination of logical .or. and .not.
        !           612: c           .not. (lp) .or. .not. (lp)
        !           613: c           true path
        !           614: c
        !           615: c
        !           616:       if (iczero) 35510, 5510, 35510
        !           617:  5510 continue
        !           618:       ivon01 = 0
        !           619:       lctnt1 = .true.
        !           620:       lctnt2 = .false.
        !           621:       if ( .not. lctnt1 .or. .not. lctnt2 )  ivon01 = 1
        !           622:       go to 45510
        !           623: 35510 ivdele = ivdele + 1
        !           624:       write (i02,80003) ivtnum
        !           625:       if (iczero) 45510, 5521, 45510
        !           626: 45510 if ( ivon01 - 1 )  25510, 15510, 25510
        !           627: 15510 ivpass = ivpass + 1
        !           628:       write (i02,80001) ivtnum
        !           629:       go to 5521
        !           630: 25510 ivfail = ivfail + 1
        !           631:       ivcomp = ivon01
        !           632:       ivcorr = 1
        !           633:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           634:  5521 continue
        !           635:       ivtnum = 552
        !           636: c
        !           637: c      ****  test 552  ****
        !           638: c     test 552  -  combination of logical .and.  .or.  and  .not.
        !           639: c           .not. ( (le) .or. (lt) ) .and. .not. ( (lt) .and. (lf) )
        !           640: c           .not. is applied to a logical expression inclosed in parens
        !           641: c           false path
        !           642: c
        !           643:       if (iczero) 35520, 5520, 35520
        !           644:  5520 continue
        !           645:       ivon01 = 1
        !           646:       lctnt1 = .false.
        !           647:       lctnt2 = .true.
        !           648:       if(.not.(lctnt1.or.lctnt2).and..not.(lctnt1.and.lctnt2))ivon01 = 0
        !           649:       go to 45520
        !           650: 35520 ivdele = ivdele + 1
        !           651:       write (i02,80003) ivtnum
        !           652:       if (iczero) 45520, 5531, 45520
        !           653: 45520 if ( ivon01 - 1 )  25520, 15520, 25520
        !           654: 15520 ivpass = ivpass + 1
        !           655:       write (i02,80001) ivtnum
        !           656:       go to 5531
        !           657: 25520 ivfail = ivfail + 1
        !           658:       ivcomp = ivon01
        !           659:       ivcorr = 1
        !           660:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           661:  5531 continue
        !           662: c
        !           663: c     write page footings and run summaries
        !           664: 99999 continue
        !           665:       write (i02,90002)
        !           666:       write (i02,90006)
        !           667:       write (i02,90002)
        !           668:       write (i02,90002)
        !           669:       write (i02,90007)
        !           670:       write (i02,90002)
        !           671:       write (i02,90008)  ivfail
        !           672:       write (i02,90009) ivpass
        !           673:       write (i02,90010) ivdele
        !           674: c
        !           675: c
        !           676: c     terminate routine execution
        !           677:       stop
        !           678: c
        !           679: c     format statements for page headers
        !           680: 90000 format (1h1)
        !           681: 90002 format (1h )
        !           682: 90001 format (1h ,10x,34hfortran compiler validation system)
        !           683: 90003 format (1h ,21x,11hversion 1.0)
        !           684: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
        !           685: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
        !           686: 90006 format (1h ,5x,46h----------------------------------------------)
        !           687: 90011 format (1h ,18x,17hsubset level test)
        !           688: c
        !           689: c     format statements for run summaries
        !           690: 90008 format (1h ,15x,i5,19h errors encountered)
        !           691: 90009 format (1h ,15x,i5,13h tests passed)
        !           692: 90010 format (1h ,15x,i5,14h tests deleted)
        !           693: c
        !           694: c     format statements for test results
        !           695: 80001 format (1h ,4x,i5,7x,4hpass)
        !           696: 80002 format (1h ,4x,i5,7x,4hfail)
        !           697: 80003 format (1h ,4x,i5,7x,7hdeleted)
        !           698: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
        !           699: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
        !           700: c
        !           701: 90007 format (1h ,20x,20hend of program fm019)
        !           702:       end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.