Annotation of 43BSDTahoe/usr.bin/f77/testf77/tests/fm019.f, revision 1.1.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.