Annotation of 43BSDTahoe/usr.bin/f77/testf77/tests/fm017.f, revision 1.1.1.1

1.1       root        1: c
                      2: c     comment section.
                      3: c
                      4: c     fm017
                      5: c
                      6: c             this routine continues tests of the fortran
                      7: c     logical    if statement in all of the various forms.    the
                      8: c     following logical operands are used for this routine - logical
                      9: c     constants, logical variables, logical array elements, and
                     10: c     arithmetic expressions with various relational operators.  both
                     11: c     the true and false branches are tested in the series of tests.
                     12: c
                     13: c      references
                     14: c        american national standard programming language fortran,
                     15: c              x3.9-1978
                     16: c
                     17: c        section 4.7.1, logical constant
                     18: c        section 6, expressions
                     19: c        section 6.1, arithmetic expressions
                     20: c        section 6.3, relational expressions
                     21: c        section 6.4, logical expressions
                     22: c        section 6.6, evaluation of expressions
                     23: c        section 10, assignment statements
                     24: c        section 10.2, logical assignment statement
                     25: c        section 11.5, logical if statement
                     26: c
                     27:       dimension iadn11(3)
                     28:       logical latn1a(2), lctnt1, lctnt2
                     29: c
                     30: c      **********************************************************
                     31: c
                     32: c         a compiler validation system for the fortran language
                     33: c     based on specifications as defined in american national standard
                     34: c     programming language fortran x3.9-1978, has been developed by the
                     35: c     federal cobol compiler testing service.  the fortran compiler
                     36: c     validation system (fcvs) consists of audit routines, their related
                     37: c     data, and an executive system.  each audit routine is a fortran
                     38: c     program, subprogram or function which includes tests of specific
                     39: c     language elements and supporting procedures indicating the result
                     40: c     of executing these tests.
                     41: c
                     42: c         this particular program/subprogram/function contains features
                     43: c     found only in the subset as defined in x3.9-1978.
                     44: c
                     45: c         suggestions and comments should be forwarded to -
                     46: c
                     47: c                  department of the navy
                     48: c                  federal cobol compiler testing service
                     49: c                  washington, d.c.  20376
                     50: c
                     51: c      **********************************************************
                     52: c
                     53: c
                     54: c
                     55: c     initialization section
                     56: c
                     57: c     initialize constants
                     58: c      **************
                     59: c     i01 contains the logical unit number for the card reader.
                     60:       i01 = 5
                     61: c     i02 contains the logical unit number for the printer.
                     62:       i02 = 6
                     63: c     system environment section
                     64: c
                     65: cx010    this card is replaced by contents of fexec x-010 control card.
                     66: c     the cx010 card is for overriding the program default i01 = 5
                     67: c     (unit number for card reader).
                     68: cx011    this card is replaced by contents of fexec x-011 control card.
                     69: c     the cx011 card is for systems which require additional
                     70: c     fortran statements for files associated with cx010 above.
                     71: c
                     72: cx020    this card is replaced by contents of fexec x-020 control card.
                     73: c     the cx020 card is for overriding the program default i02 = 6
                     74: c     (unit number for printer).
                     75: cx021    this card is replaced by contents of fexec x-021 control card.
                     76: c     the cx021 card is for systems which require additional
                     77: c     fortran statements for files associated with cx020 above.
                     78: c
                     79:       ivpass=0
                     80:       ivfail=0
                     81:       ivdele=0
                     82:       iczero=0
                     83: c
                     84: c     write page headers
                     85:       write (i02,90000)
                     86:       write (i02,90001)
                     87:       write (i02,90002)
                     88:       write (i02, 90002)
                     89:       write (i02,90003)
                     90:       write (i02,90002)
                     91:       write (i02,90004)
                     92:       write (i02,90002)
                     93:       write (i02,90011)
                     94:       write (i02,90002)
                     95:       write (i02,90002)
                     96:       write (i02,90005)
                     97:       write (i02,90006)
                     98:       write (i02,90002)
                     99:       ivtnum = 170
                    100: c
                    101: c      ****  test 170  ****
                    102: c     test 170  -  relational expression.  integer variable reference.
                    103: c           false path.  .lt.
                    104: c
                    105: c
                    106:       if (iczero) 31700, 1700, 31700
                    107:  1700 continue
                    108:       ivon01 = 3
                    109:       ivon02 = 1
                    110:       if ( 76 .lt. ivon01 )  ivon02 = 0
                    111:       go to 41700
                    112: 31700 ivdele = ivdele + 1
                    113:       write (i02,80003) ivtnum
                    114:       if (iczero) 41700, 1711, 41700
                    115: 41700 if ( ivon02 - 1 )  21700, 11700, 21700
                    116: 11700 ivpass = ivpass + 1
                    117:       write (i02,80001) ivtnum
                    118:       go to 1711
                    119: 21700 ivfail = ivfail + 1
                    120:       ivcomp = ivon02
                    121:       ivcorr = 1
                    122:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    123:  1711 continue
                    124:       ivtnum = 171
                    125: c
                    126: c      ****  test 171  ****
                    127: c     test 171  -  relational expression.  integer variable reference.
                    128: c           false path.  .le.
                    129: c
                    130: c
                    131:       if (iczero) 31710, 1710, 31710
                    132:  1710 continue
                    133:       ivon01 = 3
                    134:       ivon02 = 1
                    135:       if ( 76 .le. ivon01 )  ivon02 = 0
                    136:       go to 41710
                    137: 31710 ivdele = ivdele + 1
                    138:       write (i02,80003) ivtnum
                    139:       if (iczero) 41710, 1721, 41710
                    140: 41710 if ( ivon02 - 1 )  21710, 11710, 21710
                    141: 11710 ivpass = ivpass + 1
                    142:       write (i02,80001) ivtnum
                    143:       go to 1721
                    144: 21710 ivfail = ivfail + 1
                    145:       ivcomp = ivon02
                    146:       ivcorr = 1
                    147:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    148:  1721 continue
                    149:       ivtnum = 172
                    150: c
                    151: c      ****  test 172  ****
                    152: c     test 172  -  relational expressional.  integer variable reference.
                    153: c           false path.  .eq.
                    154: c
                    155: c
                    156:       if (iczero) 31720, 1720, 31720
                    157:  1720 continue
                    158:       ivon01 = 587
                    159:       ivon02 = 1
                    160:       if ( 9999 .eq. ivon01 )  ivon02 = 0
                    161:       go to 41720
                    162: 31720 ivdele = ivdele + 1
                    163:       write (i02,80003) ivtnum
                    164:       if (iczero) 41720, 1731, 41720
                    165: 41720 if ( ivon02 - 1 )  21720, 11720, 21720
                    166: 11720 ivpass = ivpass + 1
                    167:       write (i02,80001) ivtnum
                    168:       go to 1731
                    169: 21720 ivfail = ivfail + 1
                    170:       ivcomp = ivon02
                    171:       ivcorr = 1
                    172:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    173:  1731 continue
                    174:       ivtnum = 173
                    175: c
                    176: c      ****  test 173  ****
                    177: c     test 173  -  relational expression.  integer variable reference.
                    178: c           false path.  .ne.
                    179: c
                    180: c
                    181:       if (iczero) 31730, 1730, 31730
                    182:  1730 continue
                    183:       ivon01 = 3
                    184:       ivon02 = 1
                    185:       if ( 3 .ne. ivon01 )  ivon02 = 0
                    186:       go to 41730
                    187: 31730 ivdele = ivdele + 1
                    188:       write (i02,80003) ivtnum
                    189:       if (iczero) 41730, 1741, 41730
                    190: 41730 if ( ivon02 - 1 )  21730, 11730, 21730
                    191: 11730 ivpass = ivpass + 1
                    192:       write (i02,80001) ivtnum
                    193:       go to 1741
                    194: 21730 ivfail = ivfail + 1
                    195:       ivcomp = ivon02
                    196:       ivcorr = 1
                    197:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    198:  1741 continue
                    199:       ivtnum = 174
                    200: c
                    201: c      ****  test 174  ****
                    202: c     test 174  -  relational expression.  integer variable reference.
                    203: c           false path.  .gt.
                    204: c
                    205: c
                    206:       if (iczero) 31740, 1740, 31740
                    207:  1740 continue
                    208:       ivon01 = 32767
                    209:       ivon02 = 1
                    210:       if ( 76 .gt. ivon01 )  ivon02 = 0
                    211:       go to 41740
                    212: 31740 ivdele = ivdele + 1
                    213:       write (i02,80003) ivtnum
                    214:       if (iczero) 41740, 1751, 41740
                    215: 41740 if ( ivon02 - 1 )  21740, 11740, 21740
                    216: 11740 ivpass = ivpass + 1
                    217:       write (i02,80001) ivtnum
                    218:       go to 1751
                    219: 21740 ivfail = ivfail + 1
                    220:       ivcomp = ivon02
                    221:       ivcorr = 1
                    222:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    223:  1751 continue
                    224:       ivtnum = 175
                    225: c
                    226: c      ****  test 175  ****
                    227: c     test 175  -  relational expression.  integer variable reference.
                    228: c           false path.  .ge.
                    229: c
                    230: c
                    231:       if (iczero) 31750, 1750, 31750
                    232:  1750 continue
                    233:       ivon01 = 32767
                    234:       ivon02 = 1
                    235:       if ( 76 .ge. ivon01 )  ivon02 = 0
                    236:       go to 41750
                    237: 31750 ivdele = ivdele + 1
                    238:       write (i02,80003) ivtnum
                    239:       if (iczero) 41750, 1761, 41750
                    240: 41750 if ( ivon02 - 1 )  21750, 11750, 21750
                    241: 11750 ivpass = ivpass + 1
                    242:       write (i02,80001) ivtnum
                    243:       go to 1761
                    244: 21750 ivfail = ivfail + 1
                    245:       ivcomp = ivon02
                    246:       ivcorr = 1
                    247:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    248:  1761 continue
                    249:       ivtnum = 176
                    250: c
                    251: c      ****  test 176  ****
                    252: c     test 176  -  relational expression.  (ivr)  (ro)  (ic)
                    253: c           integer variable reference with integer constant
                    254: c           true path.  .lt.
                    255: c
                    256: c
                    257:       if (iczero) 31760, 1760, 31760
                    258:  1760 continue
                    259:       ivon01 = 3
                    260:       ivon02 = 0
                    261:       if ( ivon01 .lt. 76 )  ivon02 = 1
                    262:       go to 41760
                    263: 31760 ivdele = ivdele + 1
                    264:       write (i02,80003) ivtnum
                    265:       if (iczero) 41760, 1771, 41760
                    266: 41760 if ( ivon02 - 1 )  21760, 11760, 21760
                    267: 11760 ivpass = ivpass + 1
                    268:       write (i02,80001) ivtnum
                    269:       go to 1771
                    270: 21760 ivfail = ivfail + 1
                    271:       ivcomp = ivon02
                    272:       ivcorr = 1
                    273:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    274:  1771 continue
                    275:       ivtnum = 177
                    276: c
                    277: c      ****  test 177  ****
                    278: c     test 177  - like test 176.  false path.  .eq.
                    279: c
                    280: c
                    281:       if (iczero) 31770, 1770, 31770
                    282:  1770 continue
                    283:       ivon01 = 587
                    284:       ivon02 = 1
                    285:       if ( ivon01 .eq. 9999 )  ivon02=0
                    286:       go to 41770
                    287: 31770 ivdele = ivdele + 1
                    288:       write (i02,80003) ivtnum
                    289:       if (iczero) 41770, 1781, 41770
                    290: 41770 if ( ivon02 - 1 )  21770, 11770, 21770
                    291: 11770 ivpass = ivpass + 1
                    292:       write (i02,80001) ivtnum
                    293:       go to 1781
                    294: 21770 ivfail = ivfail + 1
                    295:       ivcomp = ivon02
                    296:       ivcorr = 1
                    297:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    298:  1781 continue
                    299:       ivtnum = 178
                    300: c
                    301: c      ****  test 178  ****
                    302: c     test 178  -  like test 176.  true path.  .ge.
                    303: c
                    304: c
                    305:       if (iczero) 31780, 1780, 31780
                    306:  1780 continue
                    307:       ivon01 = 32767
                    308:       ivon02 = 0
                    309:       if ( ivon01 .ge. 32767 )  ivon02 = 1
                    310:       go to 41780
                    311: 31780 ivdele = ivdele + 1
                    312:       write (i02,80003) ivtnum
                    313:       if (iczero) 41780, 1791, 41780
                    314: 41780 if ( ivon02 - 1 )  21780, 11780, 21780
                    315: 11780 ivpass = ivpass + 1
                    316:       write (i02,80001) ivtnum
                    317:       go to 1791
                    318: 21780 ivfail = ivfail + 1
                    319:       ivcomp = ivon02
                    320:       ivcorr = 1
                    321:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    322:  1791 continue
                    323:       ivtnum = 179
                    324: c
                    325: c      ****  test 179  ****
                    326: c     test 179  -  relational expression.  integer array element
                    327: c           reference.  (ic)  (ro)  (iaer)   false path.  .lt.
                    328: c
                    329: c
                    330:       if (iczero) 31790, 1790, 31790
                    331:  1790 continue
                    332:       ivon01 = 1
                    333:       iadn11(1) = 3
                    334:       if ( 76 .lt. iadn11(1) )  ivon01 = 0
                    335:       go to 41790
                    336: 31790 ivdele = ivdele + 1
                    337:       write (i02,80003) ivtnum
                    338:       if (iczero) 41790, 1801, 41790
                    339: 41790 if ( ivon01 - 1 )  21790, 11790, 21790
                    340: 11790 ivpass = ivpass + 1
                    341:       write (i02,80001) ivtnum
                    342:       go to 1801
                    343: 21790 ivfail = ivfail + 1
                    344:       ivcomp = ivon01
                    345:       ivcorr = 1
                    346:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    347:  1801 continue
                    348:       ivtnum = 180
                    349: c
                    350: c      ****  test 180  ****
                    351: c     test 180  -  like test 179.  true path.  .le.
                    352: c
                    353: c
                    354:       if (iczero) 31800, 1800, 31800
                    355:  1800 continue
                    356:       ivon01 = 0
                    357:       iadn11(2) = 587
                    358:       if ( 587 .le. iadn11(2) )  ivon01 = 1
                    359:       go to 41800
                    360: 31800 ivdele = ivdele + 1
                    361:       write (i02,80003) ivtnum
                    362:       if (iczero) 41800, 1811, 41800
                    363: 41800 if ( ivon01 - 1 )  21800, 11800, 21800
                    364: 11800 ivpass = ivpass + 1
                    365:       write (i02,80001) ivtnum
                    366:       go to 1811
                    367: 21800 ivfail = ivfail + 1
                    368:       ivcomp = ivon01
                    369:       ivcorr = 1
                    370:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    371:  1811 continue
                    372:       ivtnum = 181
                    373: c
                    374: c      ****  test 181  ****
                    375: c     test 181  -  like test 179.    false path.  .ge.
                    376: c
                    377: c
                    378:       if (iczero) 31810, 1810, 31810
                    379:  1810 continue
                    380:       ivon01 = 1
                    381:       iadn11(3) = 32767
                    382:       if ( 76 .ge. iadn11(3) )  ivon01 = 0
                    383:       go to 41810
                    384: 31810 ivdele = ivdele + 1
                    385:       write (i02,80003) ivtnum
                    386:       if (iczero) 41810, 1821, 41810
                    387: 41810 if ( ivon01 - 1 )  21810, 11810, 21810
                    388: 11810 ivpass = ivpass + 1
                    389:       write (i02,80001) ivtnum
                    390:       go to 1821
                    391: 21810 ivfail = ivfail + 1
                    392:       ivcomp = ivon01
                    393:       ivcorr = 1
                    394:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    395:  1821 continue
                    396:       ivtnum = 182
                    397: c
                    398: c      ****  test 182  ****
                    399: c     test 182  -  relational expression  (iaer)  (ro)  (ic).  true
                    400: c           path.  .eq.
                    401: c
                    402: c
                    403:       if (iczero) 31820, 1820, 31820
                    404:  1820 continue
                    405:       ivon01 = 0
                    406:       iadn11(2) = 32767
                    407:       if ( iadn11(2) .eq. 32767 )  ivon01 = 1
                    408:       go to 41820
                    409: 31820 ivdele = ivdele + 1
                    410:       write (i02,80003) ivtnum
                    411:       if (iczero) 41820, 1831, 41820
                    412: 41820 if ( ivon01 - 1 )  21820, 11820, 21820
                    413: 11820 ivpass = ivpass + 1
                    414:       write (i02,80001) ivtnum
                    415:       go to 1831
                    416: 21820 ivfail = ivfail + 1
                    417:       ivcomp = ivon01
                    418:       ivcorr = 1
                    419:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    420:  1831 continue
                    421:       ivtnum = 183
                    422: c
                    423: c      ****  test 183  ****
                    424: c     test 183  -  relational expression  (ivr)  (ro)  (iaer)
                    425: c           false path.  .ne.
                    426: c
                    427: c
                    428:       if (iczero) 31830, 1830, 31830
                    429:  1830 continue
                    430:       ivon01 = 1
                    431:       ivon02 = 587
                    432:       iadn11(1) = 587
                    433:       if ( ivon02 .ne. iadn11(1) )  ivon01 = 0
                    434:       go to 41830
                    435: 31830 ivdele = ivdele + 1
                    436:       write (i02,80003) ivtnum
                    437:       if (iczero) 41830, 1841, 41830
                    438: 41830 if ( ivon01 - 1 )  21830, 11830, 21830
                    439: 11830 ivpass = ivpass + 1
                    440:       write (i02,80001) ivtnum
                    441:       go to 1841
                    442: 21830 ivfail = ivfail + 1
                    443:       ivcomp = ivon01
                    444:       ivcorr = 1
                    445:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    446:  1841 continue
                    447:       ivtnum = 184
                    448: c
                    449: c      ****  test 184  ****
                    450: c     test 184  -  relational expression  (iaer)  (ro)  (ivr)
                    451: c           true path  .ne.
                    452: c
                    453: c
                    454:       if (iczero) 31840, 1840, 31840
                    455:  1840 continue
                    456:       ivon01 = 0
                    457:       iadn11(3) = 3
                    458:       ivon02 = 32767
                    459:       if ( iadn11(3) .ne. ivon02 )  ivon01 = 1
                    460:       go to 41840
                    461: 31840 ivdele = ivdele + 1
                    462:       write (i02,80003) ivtnum
                    463:       if (iczero) 41840, 1851, 41840
                    464: 41840 if ( ivon01 - 1 )  21840, 11840, 21840
                    465: 11840 ivpass = ivpass + 1
                    466:       write (i02,80001) ivtnum
                    467:       go to 1851
                    468: 21840 ivfail = ivfail + 1
                    469:       ivcomp = ivon01
                    470:       ivcorr = 1
                    471:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    472:  1851 continue
                    473:       ivtnum = 185
                    474: c
                    475: c      ****  test 185  ****
                    476: c     test 185  -  test of parentheses  ( (le) )
                    477: c           true path  logical constant  .true.
                    478: c
                    479: c
                    480:       if (iczero) 31850, 1850, 31850
                    481:  1850 continue
                    482:       ivon01 = 0
                    483:       if ( ( .true. ) )  ivon01 = 1
                    484:       go to 41850
                    485: 31850 ivdele = ivdele + 1
                    486:       write (i02,80003) ivtnum
                    487:       if (iczero) 41850, 1861, 41850
                    488: 41850 if ( ivon01 - 1 )  21850, 11850, 21850
                    489: 11850 ivpass = ivpass + 1
                    490:       write (i02,80001) ivtnum
                    491:       go to 1861
                    492: 21850 ivfail = ivfail + 1
                    493:       ivcomp = ivon01
                    494:       ivcorr = 1
                    495:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    496:  1861 continue
                    497:       ivtnum = 186
                    498: c
                    499: c      ****  test 186  ****
                    500: c     test 186  -  like test 185
                    501: c           false path  logical constant  .false.
                    502: c
                    503: c
                    504:       if (iczero) 31860, 1860, 31860
                    505:  1860 continue
                    506:       ivon01 = 1
                    507:       if ((( .false. )))  ivon01 = 0
                    508:       go to 41860
                    509: 31860 ivdele = ivdele + 1
                    510:       write (i02,80003) ivtnum
                    511:       if (iczero) 41860, 1871, 41860
                    512: 41860 if ( ivon01 - 1 )  21860, 11860, 21860
                    513: 11860 ivpass = ivpass + 1
                    514:       write (i02,80001) ivtnum
                    515:       go to 1871
                    516: 21860 ivfail = ivfail + 1
                    517:       ivcomp = ivon01
                    518:       ivcorr = 1
                    519:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    520:  1871 continue
                    521:       ivtnum = 187
                    522: c
                    523: c      ****  test 187  ****
                    524: c     test 187  -  parens around logical variable reference  ( (lvr) )
                    525: c           true path
                    526: c
                    527: c
                    528:       if (iczero) 31870, 1870, 31870
                    529:  1870 continue
                    530:       ivon01 = 0
                    531:       lctnt1 = .true.
                    532:       if ( ( lctnt1 ) )  ivon01 = 1
                    533:       go to 41870
                    534: 31870 ivdele = ivdele + 1
                    535:       write (i02,80003) ivtnum
                    536:       if (iczero) 41870, 1881, 41870
                    537: 41870 if ( ivon01 - 1 )  21870, 11870, 21870
                    538: 11870 ivpass = ivpass + 1
                    539:       write (i02,80001) ivtnum
                    540:       go to 1881
                    541: 21870 ivfail = ivfail + 1
                    542:       ivcomp = ivon01
                    543:       ivcorr = 1
                    544:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    545:  1881 continue
                    546:       ivtnum = 188
                    547: c
                    548: c      ****  test  188  ****
                    549: c     test 188  -  parens around logical array reference  ( ( laer ) )
                    550: c           false path
                    551: c
                    552:       if (iczero) 31880, 1880, 31880
                    553:  1880 continue
                    554:       ivon01 = 1
                    555:       latn1a(1) = .false.
                    556:       if ( ( latn1a(1) ) )  ivon01 = 0
                    557:       go to 41880
                    558: 31880 ivdele = ivdele + 1
                    559:       write (i02,80003) ivtnum
                    560:       if (iczero) 41880, 1891, 41880
                    561: 41880 if ( ivon01 - 1 )  21880, 11880, 21880
                    562: 11880 ivpass = ivpass + 1
                    563:       write (i02,80001) ivtnum
                    564:       go to 1891
                    565: 21880 ivfail = ivfail + 1
                    566:       ivcomp = ivon01
                    567:       ivcorr = 1
                    568:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    569:  1891 continue
                    570:       ivtnum = 189
                    571: c
                    572: c      ****  test 189  ****
                    573: c     test 189  -  use of .not. with a logical primary  .not. (lp)
                    574: c           false path  .not. .true.
                    575: c
                    576: c
                    577:       if (iczero) 31890, 1890, 31890
                    578:  1890 continue
                    579:       ivon01 = 1
                    580:       if ( .not. .true. )  ivon01 = 0
                    581:       go to 41890
                    582: 31890 ivdele = ivdele + 1
                    583:       write (i02,80003) ivtnum
                    584:       if (iczero) 41890, 1901, 41890
                    585: 41890 if ( ivon01 - 1 )  21890, 11890, 21890
                    586: 11890 ivpass = ivpass + 1
                    587:       write (i02,80001) ivtnum
                    588:       go to 1901
                    589: 21890 ivfail = ivfail + 1
                    590:       ivcomp = ivon01
                    591:       ivcorr = 1
                    592:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    593:  1901 continue
                    594:       ivtnum = 190
                    595: c
                    596: c      ****  test 190  ****
                    597: c     test 190  -  like test 189  true path  .not. .false.
                    598: c
                    599: c
                    600:       if (iczero) 31900, 1900, 31900
                    601:  1900 continue
                    602:       ivon01 = 0
                    603:       if ( .not. .false. )  ivon01 = 1
                    604:       go to 41900
                    605: 31900 ivdele = ivdele + 1
                    606:       write (i02,80003) ivtnum
                    607:       if (iczero) 41900, 1911, 41900
                    608: 41900 if ( ivon01 - 1 )  21900, 11900, 21900
                    609: 11900 ivpass = ivpass + 1
                    610:       write (i02,80001) ivtnum
                    611:       go to 1911
                    612: 21900 ivfail = ivfail + 1
                    613:       ivcomp = ivon01
                    614:       ivcorr = 1
                    615:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    616:  1911 continue
                    617:       ivtnum = 191
                    618: c
                    619: c      ****  test 191  ****
                    620: c     test 191  -  tests .not. with a logical variable set to .false.
                    621: c           in a logical assignment statement     true path
                    622: c
                    623: c
                    624:       if (iczero) 31910, 1910, 31910
                    625:  1910 continue
                    626:       ivon01 = 0
                    627:       lctnt1 = .false.
                    628:       if ( .not. lctnt1 )  ivon01 = 1
                    629:       go to 41910
                    630: 31910 ivdele = ivdele + 1
                    631:       write (i02,80003) ivtnum
                    632:       if (iczero) 41910, 1921, 41910
                    633: 41910 if ( ivon01 - 1 )  21910, 11910, 21910
                    634: 11910 ivpass = ivpass + 1
                    635:       write (i02,80001) ivtnum
                    636:       go to 1921
                    637: 21910 ivfail = ivfail + 1
                    638:       ivcomp = ivon01
                    639:       ivcorr = 1
                    640:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    641:  1921 continue
                    642:       ivtnum = 192
                    643: c
                    644: c      ****  test 192  ****
                    645: c     test 192  -  like test 191 only uses a logical array element
                    646: c           set to .false. in a logical assignment statement    true
                    647: c
                    648: c
                    649:       if (iczero) 31920, 1920, 31920
                    650:  1920 continue
                    651:       ivon01 = 0
                    652:       latn1a(2) = .false.
                    653:       if ( .not. latn1a(2) )  ivon01 = 1
                    654:       go to 41920
                    655: 31920 ivdele = ivdele + 1
                    656:       write (i02,80003) ivtnum
                    657:       if (iczero) 41920, 1931, 41920
                    658: 41920 if ( ivon01 - 1 )  21920, 11920, 21920
                    659: 11920 ivpass = ivpass + 1
                    660:       write (i02,80001) ivtnum
                    661:       go to 1931
                    662: 21920 ivfail = ivfail + 1
                    663:       ivcomp = ivon01
                    664:       ivcorr = 1
                    665:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    666:  1931 continue
                    667:       ivtnum = 193
                    668: c
                    669: c      ****  test 193  ****
                    670: c     test 193  -  use of logical .and.    (lt) .and. (lf)
                    671: c           uses two logical variables each set to .false.
                    672: c           false  .and.  false    false path
                    673: c
                    674: c
                    675:       if (iczero) 31930, 1930, 31930
                    676:  1930 continue
                    677:       ivon01 = 1
                    678:       lctnt1 = .false.
                    679:       lctnt2 = .false.
                    680:       if ( lctnt1 .and. lctnt2 )  ivon01 = 0
                    681:       go to 41930
                    682: 31930 ivdele = ivdele + 1
                    683:       write (i02,80003) ivtnum
                    684:       if (iczero) 41930, 1941, 41930
                    685: 41930 if ( ivon01 - 1 )  21930, 11930, 21930
                    686: 11930 ivpass = ivpass + 1
                    687:       write (i02,80001) ivtnum
                    688:       go to 1941
                    689: 21930 ivfail = ivfail + 1
                    690:       ivcomp = ivon01
                    691:       ivcorr = 1
                    692:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    693:  1941 continue
                    694:       ivtnum = 194
                    695: c
                    696: c      ****  test 194  ****
                    697: c     test 194  -  like test 193    false  .and.  true   false path
                    698: c
                    699: c
                    700:       if (iczero) 31940, 1940, 31940
                    701:  1940 continue
                    702:       ivon01 = 1
                    703:       lctnt1 = .false.
                    704:       lctnt2 = .true.
                    705:       if ( lctnt1 .and. lctnt2 )  ivon01 = 0
                    706:       go to 41940
                    707: 31940 ivdele = ivdele + 1
                    708:       write (i02,80003) ivtnum
                    709:       if (iczero) 41940, 1951, 41940
                    710: 41940 if ( ivon01 - 1 )  21940, 11940, 21940
                    711: 11940 ivpass = ivpass + 1
                    712:       write (i02,80001) ivtnum
                    713:       go to 1951
                    714: 21940 ivfail = ivfail + 1
                    715:       ivcomp = ivon01
                    716:       ivcorr = 1
                    717:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    718:  1951 continue
                    719:       ivtnum = 195
                    720: c
                    721: c      ****  test 195  ****
                    722: c     test 195  -  like test 193   true  .and.  false     false path
                    723: c
                    724: c
                    725:       if (iczero) 31950, 1950, 31950
                    726:  1950 continue
                    727:       ivon01 = 1
                    728:       lctnt1 = .true.
                    729:       lctnt2 = .false.
                    730:       if ( lctnt1 .and. lctnt2 )  ivon01 = 0
                    731:       go to 41950
                    732: 31950 ivdele = ivdele + 1
                    733:       write (i02,80003) ivtnum
                    734:       if (iczero) 41950, 1961, 41950
                    735: 41950 if ( ivon01 - 1 )  21950, 11950, 21950
                    736: 11950 ivpass = ivpass + 1
                    737:       write (i02,80001) ivtnum
                    738:       go to 1961
                    739: 21950 ivfail = ivfail + 1
                    740:       ivcomp = ivon01
                    741:       ivcorr = 1
                    742:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    743:  1961 continue
                    744:       ivtnum = 196
                    745: c
                    746: c      ****  test 196  ****
                    747: c     test 196  -  like test 193   true  .and.  true    true path
                    748: c
                    749: c
                    750:       if (iczero) 31960, 1960, 31960
                    751:  1960 continue
                    752:       ivon01 = 0
                    753:       lctnt1 = .true.
                    754:       lctnt2 = .true.
                    755:       if ( lctnt1 .and. lctnt2 )  ivon01 = 1
                    756:       go to 41960
                    757: 31960 ivdele = ivdele + 1
                    758:       write (i02,80003) ivtnum
                    759:       if (iczero) 41960, 1971, 41960
                    760: 41960 if ( ivon01 - 1 )  21960, 11960, 21960
                    761: 11960 ivpass = ivpass + 1
                    762:       write (i02,80001) ivtnum
                    763:       go to 1971
                    764: 21960 ivfail = ivfail + 1
                    765:       ivcomp = ivon01
                    766:       ivcorr = 1
                    767:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    768:  1971 continue
                    769:       ivtnum = 197
                    770: c
                    771: c      ****  test 197  ****
                    772: c     test 197  -  test of the inclusive  .or.  .    (le)  .or.  (lt)
                    773: c           uses logical variables set in logical assignment statements
                    774: c           false  .or.  false    false path
                    775: c
                    776: c
                    777:       if (iczero) 31970, 1970, 31970
                    778:  1970 continue
                    779:       ivon01 = 1
                    780:       lctnt1 = .false.
                    781:       lctnt2 = .false.
                    782:       if ( lctnt1 .or. lctnt2 )  ivon01 = 0
                    783:       go to 41970
                    784: 31970 ivdele = ivdele + 1
                    785:       write (i02,80003) ivtnum
                    786:       if (iczero) 41970, 1981, 41970
                    787: 41970 if ( ivon01 - 1 )  21970, 11970, 21970
                    788: 11970 ivpass = ivpass + 1
                    789:       write (i02,80001) ivtnum
                    790:       go to 1981
                    791: 21970 ivfail = ivfail + 1
                    792:       ivcomp = ivon01
                    793:       ivcorr = 1
                    794:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    795:  1981 continue
                    796:       ivtnum = 198
                    797: c
                    798: c      ****  test 198  ****
                    799: c     test 198  -  like test 197  false  .or.  true    true path
                    800: c
                    801: c
                    802:       if (iczero) 31980, 1980, 31980
                    803:  1980 continue
                    804:       ivon01 = 0
                    805:       lctnt1 = .false.
                    806:       lctnt2 = .true.
                    807:       if ( lctnt1 .or. lctnt2 )  ivon01 = 1
                    808:       go to 41980
                    809: 31980 ivdele = ivdele + 1
                    810:       write (i02,80003) ivtnum
                    811:       if (iczero) 41980, 1991, 41980
                    812: 41980 if ( ivon01 - 1 )  21980, 11980, 21980
                    813: 11980 ivpass = ivpass + 1
                    814:       write (i02,80001) ivtnum
                    815:       go to 1991
                    816: 21980 ivfail = ivfail + 1
                    817:       ivcomp = ivon01
                    818:       ivcorr = 1
                    819:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    820:  1991 continue
                    821:       ivtnum = 199
                    822: c
                    823: c      ****  test 199  ****
                    824: c     test 199  -  like test 197.  true  .or.  false    true path.
                    825: c
                    826: c
                    827:       if (iczero) 31990, 1990, 31990
                    828:  1990 continue
                    829:       ivon01 = 0
                    830:       lctnt1 = .true.
                    831:       lctnt2 = .false.
                    832:       if ( lctnt1 .or. lctnt2 )  ivon01 = 1
                    833:       go to 41990
                    834: 31990 ivdele = ivdele + 1
                    835:       write (i02,80003) ivtnum
                    836:       if (iczero) 41990, 5001, 41990
                    837: 41990 if ( ivon01 - 1 )  21990, 11990, 21990
                    838: 11990 ivpass = ivpass + 1
                    839:       write (i02,80001) ivtnum
                    840:       go to 5001
                    841: 21990 ivfail = ivfail + 1
                    842:       ivcomp = ivon01
                    843:       ivcorr = 1
                    844:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    845:  5001 continue
                    846: c
                    847: c     write page footings and run summaries
                    848: 99999 continue
                    849:       write (i02,90002)
                    850:       write (i02,90006)
                    851:       write (i02,90002)
                    852:       write (i02,90002)
                    853:       write (i02,90007)
                    854:       write (i02,90002)
                    855:       write (i02,90008)  ivfail
                    856:       write (i02,90009) ivpass
                    857:       write (i02,90010) ivdele
                    858: c
                    859: c
                    860: c     terminate routine execution
                    861:       stop
                    862: c
                    863: c     format statements for page headers
                    864: 90000 format (1h1)
                    865: 90002 format (1h )
                    866: 90001 format (1h ,10x,34hfortran compiler validation system)
                    867: 90003 format (1h ,21x,11hversion 1.0)
                    868: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
                    869: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
                    870: 90006 format (1h ,5x,46h----------------------------------------------)
                    871: 90011 format (1h ,18x,17hsubset level test)
                    872: c
                    873: c     format statements for run summaries
                    874: 90008 format (1h ,15x,i5,19h errors encountered)
                    875: 90009 format (1h ,15x,i5,13h tests passed)
                    876: 90010 format (1h ,15x,i5,14h tests deleted)
                    877: c
                    878: c     format statements for test results
                    879: 80001 format (1h ,4x,i5,7x,4hpass)
                    880: 80002 format (1h ,4x,i5,7x,4hfail)
                    881: 80003 format (1h ,4x,i5,7x,7hdeleted)
                    882: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
                    883: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
                    884: c
                    885: 90007 format (1h ,20x,20hend of program fm017)
                    886:       end

unix.superglobalmegacorp.com

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