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

1.1     ! root        1: c
        !             2: c     comment section.
        !             3: c
        !             4: c     fm018
        !             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:       logical  lctnt1, lctnt2, latn1a(2)
        !            28:       dimension iadn11(2)
        !            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 = 500
        !           100: c
        !           101: c      ****  test 500  ****
        !           102: c     test 500  -  like test 197.  true  .or.  true    true path
        !           103: c           test of the fortran inclusive or  (le)  .or.  (lt)
        !           104: c
        !           105: c
        !           106:       if (iczero) 35000, 5000, 35000
        !           107:  5000 continue
        !           108:       ivon01 = 0
        !           109:       lctnt1 = .true.
        !           110:       lctnt2 = .true.
        !           111:       if ( lctnt1 .or. lctnt2 )  ivon01 = 1
        !           112:       go to 45000
        !           113: 35000 ivdele = ivdele + 1
        !           114:       write (i02,80003) ivtnum
        !           115:       if (iczero) 45000, 5011, 45000
        !           116: 45000 if ( ivon01 - 1 )  25000, 15000, 25000
        !           117: 15000 ivpass = ivpass + 1
        !           118:       write (i02,80001) ivtnum
        !           119:       go to 5011
        !           120: 25000 ivfail = ivfail + 1
        !           121:       ivcomp = ivon01
        !           122:       ivcorr = 1
        !           123:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           124:  5011 continue
        !           125:       ivtnum = 501
        !           126: c
        !           127: c      ****  test 501  ****
        !           128: c     test 501  -  test of parentheses around a logical expression
        !           129: c           (  (le)  )  .or.  (lt)
        !           130: c           uses logical variables set in logical assignment  statements
        !           131: c           ( false )  .or.  false    false path
        !           132: c
        !           133: c
        !           134:       if (iczero) 35010, 5010, 35010
        !           135:  5010 continue
        !           136:       ivon01 = 1
        !           137:       lctnt1 = .false.
        !           138:       lctnt2 = .false.
        !           139:       if ( (lctnt1) .or. lctnt2 )  ivon01 = 0
        !           140:       go to 45010
        !           141: 35010 ivdele = ivdele + 1
        !           142:       write (i02,80003) ivtnum
        !           143:       if (iczero) 45010, 5021, 45010
        !           144: 45010 if ( ivon01 - 1 )  25010, 15010, 25010
        !           145: 15010 ivpass = ivpass + 1
        !           146:       write (i02,80001) ivtnum
        !           147:       go to 5021
        !           148: 25010 ivfail = ivfail + 1
        !           149:       ivcomp = ivon01
        !           150:       ivcorr = 1
        !           151:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           152:  5021 continue
        !           153:       ivtnum = 502
        !           154: c
        !           155: c      ****  test 502  ****
        !           156: c     test 502  -  like test 501 except that it it is of the form
        !           157: c           (le)  .or.  ( (lt) )        true  .or.  (true)
        !           158: c           true path
        !           159: c
        !           160: c
        !           161:       if (iczero) 35020, 5020, 35020
        !           162:  5020 continue
        !           163:       ivon01 = 0
        !           164:       lctnt1 = .true.
        !           165:       lctnt2 = .true.
        !           166:       if ( lctnt1 .or. ( lctnt2 ) )   ivon01 = 1
        !           167:       go to 45020
        !           168: 35020 ivdele = ivdele + 1
        !           169:       write (i02,80003) ivtnum
        !           170:       if (iczero) 45020, 5031, 45020
        !           171: 45020 if ( ivon01 - 1 )  25020, 15020, 25020
        !           172: 15020 ivpass = ivpass + 1
        !           173:       write (i02,80001) ivtnum
        !           174:       go to 5031
        !           175: 25020 ivfail = ivfail + 1
        !           176:       ivcomp = ivon01
        !           177:       ivcorr = 1
        !           178:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           179:  5031 continue
        !           180:       ivtnum = 503
        !           181: c
        !           182: c      ****  test 503  ****
        !           183: c     test 503  -  test of parentheses in logical expressions
        !           184: c           (  (le)  )  .or.  (  (lt)  )
        !           185: c           (false) .or. (true)    true path
        !           186: c
        !           187: c
        !           188:       if (iczero) 35030, 5030, 35030
        !           189:  5030 continue
        !           190:       ivon01 = 0
        !           191:       lctnt1 = .false.
        !           192:       lctnt2 = .true.
        !           193:       if ( (lctnt1) .or. (lctnt2) )  ivon01 = 1
        !           194:       go to 45030
        !           195: 35030 ivdele = ivdele + 1
        !           196:       write (i02,80003) ivtnum
        !           197:       if (iczero) 45030, 5041, 45030
        !           198: 45030 if ( ivon01 - 1 )  25030, 15030, 25030
        !           199: 15030 ivpass = ivpass + 1
        !           200:       write (i02,80001) ivtnum
        !           201:       go to 5041
        !           202: 25030 ivfail = ivfail + 1
        !           203:       ivcomp = ivon01
        !           204:       ivcorr = 1
        !           205:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           206:  5041 continue
        !           207:       ivtnum = 504
        !           208: c
        !           209: c      ****  test 504  ****
        !           210: c     test 504  -  like test 503 only more parentheses   true path
        !           211: c
        !           212: c
        !           213:       if (iczero) 35040, 5040, 35040
        !           214:  5040 continue
        !           215:       ivon01 = 0
        !           216:       lctnt1 = .true.
        !           217:       lctnt2 = .false.
        !           218:       if ( ( (lctnt1) .or. (lctnt2) ) )  ivon01 = 1
        !           219:       go to 45040
        !           220: 35040 ivdele = ivdele + 1
        !           221:       write (i02,80003) ivtnum
        !           222:       if (iczero) 45040, 5051, 45040
        !           223: 45040 if ( ivon01 - 1 )  25040, 15040, 25040
        !           224: 15040 ivpass = ivpass + 1
        !           225:       write (i02,80001) ivtnum
        !           226:       go to 5051
        !           227: 25040 ivfail = ivfail + 1
        !           228:       ivcomp = ivon01
        !           229:       ivcorr = 1
        !           230:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           231:  5051 continue
        !           232:       ivtnum = 505
        !           233: c
        !           234: c      ****  test 505  ****
        !           235: c     test 505  -  test of parentheses with .and.  false path
        !           236: c
        !           237: c
        !           238:       if (iczero) 35050, 5050, 35050
        !           239:  5050 continue
        !           240:       ivon01 = 1
        !           241:       lctnt1 = .false.
        !           242:       lctnt2 = .false.
        !           243:       if ( (lctnt1) .and. lctnt2 )  ivon01 = 0
        !           244:       go to 45050
        !           245: 35050 ivdele = ivdele + 1
        !           246:       write (i02,80003) ivtnum
        !           247:       if (iczero) 45050, 5061, 45050
        !           248: 45050 if ( ivon01 - 1 )  25050, 15050, 25050
        !           249: 15050 ivpass = ivpass + 1
        !           250:       write (i02,80001) ivtnum
        !           251:       go to 5061
        !           252: 25050 ivfail = ivfail + 1
        !           253:       ivcomp = ivon01
        !           254:       ivcorr = 1
        !           255:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           256:  5061 continue
        !           257:       ivtnum = 506
        !           258: c
        !           259: c      ****  test 506  ****
        !           260: c     test 506  -  like test 505  false path
        !           261: c
        !           262: c
        !           263:       if (iczero) 35060, 5060, 35060
        !           264:  5060 continue
        !           265:       ivon01 = 1
        !           266:       lctnt1 = .false.
        !           267:       lctnt2 = .true.
        !           268:       if ( lctnt1 .and. (lctnt2) )  ivon01 = 0
        !           269:       go to 45060
        !           270: 35060 ivdele = ivdele + 1
        !           271:       write (i02,80003) ivtnum
        !           272:       if (iczero) 45060, 5071, 45060
        !           273: 45060 if ( ivon01 - 1 )  25060, 15060, 25060
        !           274: 15060 ivpass = ivpass + 1
        !           275:       write (i02,80001) ivtnum
        !           276:       go to 5071
        !           277: 25060 ivfail = ivfail + 1
        !           278:       ivcomp = ivon01
        !           279:       ivcorr = 1
        !           280:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           281:  5071 continue
        !           282:       ivtnum = 507
        !           283: c
        !           284: c      ****  test 507  ****
        !           285: c     test 507  -  more parentheses with logical .and.  false path
        !           286: c
        !           287: c
        !           288:       if (iczero) 35070, 5070, 35070
        !           289:  5070 continue
        !           290:       ivon01 = 1
        !           291:       lctnt1 = .true.
        !           292:       lctnt2 = .false.
        !           293:       if ( (lctnt1) .and. (lctnt2) )  ivon01 = 0
        !           294:       go to 45070
        !           295: 35070 ivdele = ivdele + 1
        !           296:       write (i02,80003) ivtnum
        !           297:       if (iczero) 45070, 5081, 45070
        !           298: 45070 if ( ivon01 - 1 )  25070, 15070, 25070
        !           299: 15070 ivpass = ivpass + 1
        !           300:       write (i02,80001) ivtnum
        !           301:       go to 5081
        !           302: 25070 ivfail = ivfail + 1
        !           303:       ivcomp = ivon01
        !           304:       ivcorr = 1
        !           305:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           306:  5081 continue
        !           307:       ivtnum = 508
        !           308: c
        !           309: c      ****  test 508  ****
        !           310: c     test 508  -  test of logical .not. with parentheses around a logic
        !           311: c           primary.  for this test a logical array element is used as
        !           312: c           the logical primary.  .not. (false)   true path.
        !           313: c
        !           314: c
        !           315:       if (iczero) 35080, 5080, 35080
        !           316:  5080 continue
        !           317:       ivon01 = 0
        !           318:       latn1a(1) = .false.
        !           319:       if ( .not. (latn1a(1)) )  ivon01 = 1
        !           320:       go to 45080
        !           321: 35080 ivdele = ivdele + 1
        !           322:       write (i02,80003) ivtnum
        !           323:       if (iczero) 45080, 5091, 45080
        !           324: 45080 if ( ivon01 - 1 )  25080, 15080, 25080
        !           325: 15080 ivpass = ivpass + 1
        !           326:       write (i02,80001) ivtnum
        !           327:       go to 5091
        !           328: 25080 ivfail = ivfail + 1
        !           329:       ivcomp = ivon01
        !           330:       ivcorr = 1
        !           331:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           332:  5091 continue
        !           333:       ivtnum = 509
        !           334: c
        !           335: c      ****  test 509  ****
        !           336: c     test 509  -  like test 508 except that the whole expression
        !           337: c           is in parentheses.  false path
        !           338: c
        !           339: c
        !           340:       if (iczero) 35090, 5090, 35090
        !           341:  5090 continue
        !           342:       ivon01 = 1
        !           343:       latn1a(2) = .true.
        !           344:       if ( ( .not. (latn1a(2)) ) )  ivon01 = 0
        !           345:       go to 45090
        !           346: 35090 ivdele = ivdele + 1
        !           347:       write (i02,80003) ivtnum
        !           348:       if (iczero) 45090, 5101, 45090
        !           349: 45090 if ( ivon01 - 1 )  25090, 15090, 25090
        !           350: 15090 ivpass = ivpass + 1
        !           351:       write (i02,80001) ivtnum
        !           352:       go to 5101
        !           353: 25090 ivfail = ivfail + 1
        !           354:       ivcomp = ivon01
        !           355:       ivcorr = 1
        !           356:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           357:  5101 continue
        !           358:       ivtnum = 510
        !           359: c
        !           360: c      ****  test 510  ****
        !           361: c     test 510  -  integer constant exponientation
        !           362: c           relational expression using  .eq.  true path
        !           363: c
        !           364: c
        !           365:       if (iczero) 35100, 5100, 35100
        !           366:  5100 continue
        !           367:       ivon01 = 0
        !           368:       if ( 3 ** 3 .eq. 27 )  ivon01 = 1
        !           369:       go to 45100
        !           370: 35100 ivdele = ivdele + 1
        !           371:       write (i02,80003) ivtnum
        !           372:       if (iczero) 45100, 5111, 45100
        !           373: 45100 if ( ivon01 - 1 )  25100, 15100, 25100
        !           374: 15100 ivpass = ivpass + 1
        !           375:       write (i02,80001) ivtnum
        !           376:       go to 5111
        !           377: 25100 ivfail = ivfail + 1
        !           378:       ivcomp = ivon01
        !           379:       ivcorr = 1
        !           380:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           381:  5111 continue
        !           382:       ivtnum = 511
        !           383: c
        !           384: c      ****  test 511  ****
        !           385: c     test 511  -  exponientiation using an integer variable
        !           386: c           relational expression using  .ne.  false path
        !           387: c
        !           388: c
        !           389:       if (iczero) 35110, 5110, 35110
        !           390:  5110 continue
        !           391:       ivon01 = 1
        !           392:       ivon02 = 3
        !           393:       if ( ivon02 ** 3 .ne. 27 )  ivon01 = 0
        !           394:       go to 45110
        !           395: 35110 ivdele = ivdele + 1
        !           396:       write (i02,80003) ivtnum
        !           397:       if (iczero) 45110, 5121, 45110
        !           398: 45110 if ( ivon01 - 1 )  25110, 15110, 25110
        !           399: 15110 ivpass = ivpass + 1
        !           400:       write (i02,80001) ivtnum
        !           401:       go to 5121
        !           402: 25110 ivfail = ivfail + 1
        !           403:       ivcomp = ivon01
        !           404:       ivcorr = 1
        !           405:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           406:  5121 continue
        !           407:       ivtnum = 512
        !           408: c
        !           409: c      ****  test 512  ****
        !           410: c     test 512  -  like test 511  uses  .le.  true path
        !           411: c
        !           412: c
        !           413:       if (iczero) 35120, 5120, 35120
        !           414:  5120 continue
        !           415:       ivon01 = 0
        !           416:       ivon02 = 3
        !           417:       if ( 3 ** ivon02 .le. 27 )  ivon01 = 1
        !           418:       go to 45120
        !           419: 35120 ivdele = ivdele + 1
        !           420:       write (i02,80003) ivtnum
        !           421:       if (iczero) 45120, 5131, 45120
        !           422: 45120 if ( ivon01 - 1 )  25120, 15120, 25120
        !           423: 15120 ivpass = ivpass + 1
        !           424:       write (i02,80001) ivtnum
        !           425:       go to 5131
        !           426: 25120 ivfail = ivfail + 1
        !           427:       ivcomp = ivon01
        !           428:       ivcorr = 1
        !           429:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           430:  5131 continue
        !           431:       ivtnum = 513
        !           432: c
        !           433: c      ****  test 513  ****
        !           434: c     test 513  -  like test 511 but uses all integer variables
        !           435: c           relational expression uses  .lt.  false path
        !           436: c
        !           437: c
        !           438:       if (iczero) 35130, 5130, 35130
        !           439:  5130 continue
        !           440:       ivon01 = 1
        !           441:       ivon02 = 3
        !           442:       ivon03 = 27
        !           443:       if ( ivon02 ** ivon02 .lt. ivon03 )  ivon01 = 0
        !           444:       go to 45130
        !           445: 35130 ivdele = ivdele + 1
        !           446:       write (i02,80003) ivtnum
        !           447:       if (iczero) 45130, 5141, 45130
        !           448: 45130 if ( ivon01 - 1 )  25130, 15130, 25130
        !           449: 15130 ivpass = ivpass + 1
        !           450:       write (i02,80001) ivtnum
        !           451:       go to 5141
        !           452: 25130 ivfail = ivfail + 1
        !           453:       ivcomp = ivon01
        !           454:       ivcorr = 1
        !           455:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           456:  5141 continue
        !           457:       ivtnum = 514
        !           458: c
        !           459: c      ****  test 514  ****
        !           460: c     test 514  -  like test 511 but uses integer array elements
        !           461: c           relational expression uses .ge.  true path
        !           462: c
        !           463: c
        !           464:       if (iczero) 35140, 5140, 35140
        !           465:  5140 continue
        !           466:       ivon01 = 0
        !           467:       ivon02 = 3
        !           468:       iadn11(1) = 3
        !           469:       iadn11(2) = 27
        !           470:       if ( iadn11(1) ** ivon02 .ge. iadn11(2) )  ivon01 = 1
        !           471:       go to 45140
        !           472: 35140 ivdele = ivdele + 1
        !           473:       write (i02,80003) ivtnum
        !           474:       if (iczero) 45140, 5151, 45140
        !           475: 45140 if ( ivon01 - 1 )  25140, 15140, 25140
        !           476: 15140 ivpass = ivpass + 1
        !           477:       write (i02,80001) ivtnum
        !           478:       go to 5151
        !           479: 25140 ivfail = ivfail + 1
        !           480:       ivcomp = ivon01
        !           481:       ivcorr = 1
        !           482:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           483:  5151 continue
        !           484:       ivtnum = 515
        !           485: c
        !           486: c      ****  test 515  ****
        !           487: c     test 515  -  like test 514 but uses all integer array elements
        !           488: c           relational expression uses  .gt.  false path
        !           489: c
        !           490: c
        !           491:       if (iczero) 35150, 5150, 35150
        !           492:  5150 continue
        !           493:       ivon01 = 1
        !           494:       iadn11(1) = 3
        !           495:       iadn11(2) = 27
        !           496:       if ( iadn11(1) ** iadn11(1) .gt. iadn11(2) )  ivon01 = 0
        !           497:       go to 45150
        !           498: 35150 ivdele = ivdele + 1
        !           499:       write (i02,80003) ivtnum
        !           500:       if (iczero) 45150, 5161, 45150
        !           501: 45150 if ( ivon01 - 1 )  25150, 15150, 25150
        !           502: 15150 ivpass = ivpass + 1
        !           503:       write (i02,80001) ivtnum
        !           504:       go to 5161
        !           505: 25150 ivfail = ivfail + 1
        !           506:       ivcomp = ivon01
        !           507:       ivcorr = 1
        !           508:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           509:  5161 continue
        !           510:       ivtnum = 516
        !           511: c
        !           512: c      ****  test 516  ****
        !           513: c     test 516  -  test of integer multiplication using integer
        !           514: c           constants.  relational expression uses  .lt.  true path
        !           515: c
        !           516: c
        !           517:       if (iczero) 35160, 5160, 35160
        !           518:  5160 continue
        !           519:       ivon01 = 0
        !           520:       ivon02 = 587
        !           521:       if ( 3 * 3 .lt. ivon02 )  ivon01 = 1
        !           522:       go to 45160
        !           523: 35160 ivdele = ivdele + 1
        !           524:       write (i02,80003) ivtnum
        !           525:       if (iczero) 45160, 5171, 45160
        !           526: 45160 if ( ivon01 - 1 )  25160, 15160, 25160
        !           527: 15160 ivpass = ivpass + 1
        !           528:       write (i02,80001) ivtnum
        !           529:       go to 5171
        !           530: 25160 ivfail = ivfail + 1
        !           531:       ivcomp = ivon01
        !           532:       ivcorr = 1
        !           533:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           534:  5171 continue
        !           535:       ivtnum = 517
        !           536: c
        !           537: c      ****  test 517  ****
        !           538: c     test 517  -  integer multiplication with integer constants,
        !           539: c           variables, and array elements.  relational expression uses
        !           540: c           .gt.  false path
        !           541: c
        !           542: c
        !           543:       if (iczero) 35170, 5170, 35170
        !           544:  5170 continue
        !           545:       ivon01 = 1
        !           546:       ivon02 = 32767
        !           547:       iadn11(1) = 3
        !           548:       if ( iadn11(1) * 587 .gt. ivon02 )  ivon01 = 0
        !           549:       go to 45170
        !           550: 35170 ivdele = ivdele + 1
        !           551:       write (i02,80003) ivtnum
        !           552:       if (iczero) 45170, 5181, 45170
        !           553: 45170 if ( ivon01 - 1 )  25170, 15170, 25170
        !           554: 15170 ivpass = ivpass + 1
        !           555:       write (i02,80001) ivtnum
        !           556:       go to 5181
        !           557: 25170 ivfail = ivfail + 1
        !           558:       ivcomp = ivon01
        !           559:       ivcorr = 1
        !           560:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           561:  5181 continue
        !           562:       ivtnum = 518
        !           563: c
        !           564: c      ****  test 518  ****
        !           565: c     test 518  -  integer multiplication and exponientation
        !           566: c           relational expression uses  .eq.  true path
        !           567: c
        !           568: c
        !           569:       if (iczero) 35180, 5180, 35180
        !           570:  5180 continue
        !           571:       ivon01 = 0
        !           572:       ivon02 = 3
        !           573:       ivon03 = 27
        !           574:       iadn11(2) = 3
        !           575:       if ( iadn11(2) ** 2 * ivon02 .eq. ivon03 )  ivon01 = 1
        !           576:       go to 45180
        !           577: 35180 ivdele = ivdele + 1
        !           578:       write (i02,80003) ivtnum
        !           579:       if (iczero) 45180, 5191, 45180
        !           580: 45180 if ( ivon01 - 1 )  25180, 15180, 25180
        !           581: 15180 ivpass = ivpass + 1
        !           582:       write (i02,80001) ivtnum
        !           583:       go to 5191
        !           584: 25180 ivfail = ivfail + 1
        !           585:       ivcomp = ivon01
        !           586:       ivcorr = 1
        !           587:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           588:  5191 continue
        !           589:       ivtnum = 519
        !           590: c
        !           591: c      ****  test 519  ****
        !           592: c     test 519  -  integer division.  relational expression  .ne.
        !           593: c           false path
        !           594: c
        !           595: c
        !           596:       if (iczero) 35190, 5190, 35190
        !           597:  5190 continue
        !           598:       ivon01 = 1
        !           599:       ivon02 = 27
        !           600:       iadn11(1) = 3
        !           601:       if ( ivon02 / 9 .ne. iadn11(1) )  ivon01 = 0
        !           602:       go to 45190
        !           603: 35190 ivdele = ivdele + 1
        !           604:       write (i02,80003) ivtnum
        !           605:       if (iczero) 45190, 5201, 45190
        !           606: 45190 if ( ivon01 - 1 )  25190, 15190, 25190
        !           607: 15190 ivpass = ivpass + 1
        !           608:       write (i02,80001) ivtnum
        !           609:       go to 5201
        !           610: 25190 ivfail = ivfail + 1
        !           611:       ivcomp = ivon01
        !           612:       ivcorr = 1
        !           613:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           614:  5201 continue
        !           615:       ivtnum = 520
        !           616: c
        !           617: c      ****  test 520  ****
        !           618: c     test 520  -  integer variable division.  relational expression
        !           619: c           uses .ge.  true path
        !           620: c
        !           621: c
        !           622:       if (iczero) 35200, 5200, 35200
        !           623:  5200 continue
        !           624:       ivon01 = 0
        !           625:       ivon02 = 32767
        !           626:       ivon03 = 3
        !           627:       ivon04 = 9999
        !           628:       ivon05 = 587
        !           629:       if ( ivon02 / ivon03 .ge. ivon04 / ivon05 )  ivon01 = 1
        !           630:       go to 45200
        !           631: 35200 ivdele = ivdele + 1
        !           632:       write (i02,80003) ivtnum
        !           633:       if (iczero) 45200, 5211, 45200
        !           634: 45200 if ( ivon01 - 1 )  25200, 15200, 25200
        !           635: 15200 ivpass = ivpass + 1
        !           636:       write (i02,80001) ivtnum
        !           637:       go to 5211
        !           638: 25200 ivfail = ivfail + 1
        !           639:       ivcomp = ivon01
        !           640:       ivcorr = 1
        !           641:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           642:  5211 continue
        !           643:       ivtnum = 521
        !           644: c
        !           645: c      ****  test 521  ****
        !           646: c     test 521  -  integer division and exponientation
        !           647: c           relational expression uses  .lt.  false path
        !           648: c
        !           649: c
        !           650:       if (iczero) 35210, 5210, 35210
        !           651:  5210 continue
        !           652:       ivon01 = 1
        !           653:       ivon02 = 587
        !           654:       ivon03 = 3
        !           655:       iadn11(2) = 3
        !           656:       if ( ivon02 / iadn11(2) ** 3 .lt. 3 ** ivon03 / ivon02 ) ivon01 =0
        !           657:       if ( ivon02 / iadn11(2) ** 3 .lt. 3 ** ivon03 / ivon02 )  ivon01=0
        !           658:       go to 45210
        !           659: 35210 ivdele = ivdele + 1
        !           660:       write (i02,80003) ivtnum
        !           661:       if (iczero) 45210, 5221, 45210
        !           662: 45210 if ( ivon01 - 1 )  25210, 15210, 25210
        !           663: 15210 ivpass = ivpass + 1
        !           664:       write (i02,80001) ivtnum
        !           665:       go to 5221
        !           666: 25210 ivfail = ivfail + 1
        !           667:       ivcomp = ivon01
        !           668:       ivcorr = 1
        !           669:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           670:  5221 continue
        !           671:       ivtnum = 522
        !           672: c
        !           673: c      ****  test 522  ****
        !           674: c     test 522  -  tests 522 thru 535 are tests of signed terms
        !           675: c           +(t)  also  -(t)
        !           676: c           relational expression uses .gt.  true path
        !           677: c
        !           678: c
        !           679:       if (iczero) 35220, 5220, 35220
        !           680:  5220 continue
        !           681:       ivon01 = 0
        !           682:       if ( 3 .gt. -3 )  ivon01 = 1
        !           683:       go to 45220
        !           684: 35220 ivdele = ivdele + 1
        !           685:       write (i02,80003) ivtnum
        !           686:       if (iczero) 45220, 5231, 45220
        !           687: 45220 if ( ivon01 - 1 )  25220, 15220, 25220
        !           688: 15220 ivpass = ivpass + 1
        !           689:       write (i02,80001) ivtnum
        !           690:       go to 5231
        !           691: 25220 ivfail = ivfail + 1
        !           692:       ivcomp = ivon01
        !           693:       ivcorr = 1
        !           694:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           695:  5231 continue
        !           696:       ivtnum = 523
        !           697: c
        !           698: c      ****  test 523  ****
        !           699: c     test 523  -  test of signed zero  .lt.  false path
        !           700: c
        !           701: c
        !           702:       if (iczero) 35230, 5230, 35230
        !           703:  5230 continue
        !           704:       ivon01 = 1
        !           705:       if ( 0 .lt. -0 )  ivon01 = 0
        !           706:       go to 45230
        !           707: 35230 ivdele = ivdele + 1
        !           708:       write (i02,80003) ivtnum
        !           709:       if (iczero) 45230, 5241, 45230
        !           710: 45230 if ( ivon01 - 1 )  25230, 15230, 25230
        !           711: 15230 ivpass = ivpass + 1
        !           712:       write (i02,80001) ivtnum
        !           713:       go to 5241
        !           714: 25230 ivfail = ivfail + 1
        !           715:       ivcomp = ivon01
        !           716:       ivcorr = 1
        !           717:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           718:  5241 continue
        !           719:       ivtnum = 524
        !           720: c
        !           721: c      ****  test 524  ****
        !           722: c     test 524  -  test of signed zero  .le.  true path
        !           723: c
        !           724: c
        !           725:       if (iczero) 35240, 5240, 35240
        !           726:  5240 continue
        !           727:       ivon01 = 0
        !           728:       if ( 0 .le. -0 )  ivon01 = 1
        !           729:       go to 45240
        !           730: 35240 ivdele = ivdele + 1
        !           731:       write (i02,80003) ivtnum
        !           732:       if (iczero) 45240, 5251, 45240
        !           733: 45240 if ( ivon01 - 1 )  25240, 15240, 25240
        !           734: 15240 ivpass = ivpass + 1
        !           735:       write (i02,80001) ivtnum
        !           736:       go to 5251
        !           737: 25240 ivfail = ivfail + 1
        !           738:       ivcomp = ivon01
        !           739:       ivcorr = 1
        !           740:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           741:  5251 continue
        !           742:       ivtnum = 525
        !           743: c
        !           744: c      ****  test 525  ****
        !           745: c     test 525  -  test of signed zero  .eq.  true path
        !           746: c
        !           747: c
        !           748:       if (iczero) 35250, 5250, 35250
        !           749:  5250 continue
        !           750:       ivon01 = 0
        !           751:       if ( 0 .eq. -0 )  ivon01 = 1
        !           752:       go to 45250
        !           753: 35250 ivdele = ivdele + 1
        !           754:       write (i02,80003) ivtnum
        !           755:       if (iczero) 45250, 5261, 45250
        !           756: 45250 if ( ivon01 - 1 )  25250, 15250, 25250
        !           757: 15250 ivpass = ivpass + 1
        !           758:       write (i02,80001) ivtnum
        !           759:       go to 5261
        !           760: 25250 ivfail = ivfail + 1
        !           761:       ivcomp = ivon01
        !           762:       ivcorr = 1
        !           763:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           764:  5261 continue
        !           765:       ivtnum = 526
        !           766: c
        !           767: c      ****  test 526  ****
        !           768: c     test 526  -  test of signed zero  .ne.  false path
        !           769: c
        !           770: c
        !           771:       if (iczero) 35260, 5260, 35260
        !           772:  5260 continue
        !           773:       ivon01 = 1
        !           774:       if ( 0 .ne. -0 )  ivon01 = 0
        !           775:       go to 45260
        !           776: 35260 ivdele = ivdele + 1
        !           777:       write (i02,80003) ivtnum
        !           778:       if (iczero) 45260, 5271, 45260
        !           779: 45260 if ( ivon01 - 1 )  25260, 15260, 25260
        !           780: 15260 ivpass = ivpass + 1
        !           781:       write (i02,80001) ivtnum
        !           782:       go to 5271
        !           783: 25260 ivfail = ivfail + 1
        !           784:       ivcomp = ivon01
        !           785:       ivcorr = 1
        !           786:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           787:  5271 continue
        !           788:       ivtnum = 527
        !           789: c
        !           790: c      ****  test 527  ****
        !           791: c     test 527  -  test of signed zero  .ge.  true path
        !           792: c
        !           793: c
        !           794:       if (iczero) 35270, 5270, 35270
        !           795:  5270 continue
        !           796:       ivon01 = 0
        !           797:       if ( 0 .ge. -0 )  ivon01 = 1
        !           798:       go to 45270
        !           799: 35270 ivdele = ivdele + 1
        !           800:       write (i02,80003) ivtnum
        !           801:       if (iczero) 45270, 5281, 45270
        !           802: 45270 if ( ivon01 - 1 )  25270, 15270, 25270
        !           803: 15270 ivpass = ivpass + 1
        !           804:       write (i02,80001) ivtnum
        !           805:       go to 5281
        !           806: 25270 ivfail = ivfail + 1
        !           807:       ivcomp = ivon01
        !           808:       ivcorr = 1
        !           809:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           810:  5281 continue
        !           811:       ivtnum = 528
        !           812: c
        !           813: c      ****  test 528  ****
        !           814: c     test 528  -  test of signed zero  .gt.  false path
        !           815: c
        !           816: c
        !           817:       if (iczero) 35280, 5280, 35280
        !           818:  5280 continue
        !           819:       ivon01 = 1
        !           820:       if ( 0 .gt. -0 )  ivon01 = 0
        !           821:       go to 45280
        !           822: 35280 ivdele = ivdele + 1
        !           823:       write (i02,80003) ivtnum
        !           824:       if (iczero) 45280, 5291, 45280
        !           825: 45280 if ( ivon01 - 1 )  25280, 15280, 25280
        !           826: 15280 ivpass = ivpass + 1
        !           827:       write (i02,80001) ivtnum
        !           828:       go to 5291
        !           829: 25280 ivfail = ivfail + 1
        !           830:       ivcomp = ivon01
        !           831:       ivcorr = 1
        !           832:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           833:  5291 continue
        !           834:       ivtnum = 529
        !           835: c
        !           836: c      ****  test 529  ****
        !           837: c     test 529  -  test of 32767 and -32766  .gt.  true path
        !           838: c
        !           839: c
        !           840:       if (iczero) 35290, 5290, 35290
        !           841:  5290 continue
        !           842:       ivon01 = 0
        !           843:       if ( 32767 .gt. -32766 )  ivon01 = 1
        !           844:       go to 45290
        !           845: 35290 ivdele = ivdele + 1
        !           846:       write (i02,80003) ivtnum
        !           847:       if (iczero) 45290, 5301, 45290
        !           848: 45290 if ( ivon01 - 1 )  25290, 15290, 25290
        !           849: 15290 ivpass = ivpass + 1
        !           850:       write (i02,80001) ivtnum
        !           851:       go to 5301
        !           852: 25290 ivfail = ivfail + 1
        !           853:       ivcomp = ivon01
        !           854:       ivcorr = 1
        !           855:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           856:  5301 continue
        !           857: c
        !           858: c     write page footings and run summaries
        !           859: 99999 continue
        !           860:       write (i02,90002)
        !           861:       write (i02,90006)
        !           862:       write (i02,90002)
        !           863:       write (i02,90002)
        !           864:       write (i02,90007)
        !           865:       write (i02,90002)
        !           866:       write (i02,90008)  ivfail
        !           867:       write (i02,90009) ivpass
        !           868:       write (i02,90010) ivdele
        !           869: c
        !           870: c
        !           871: c     terminate routine execution
        !           872:       stop
        !           873: c
        !           874: c     format statements for page headers
        !           875: 90000 format (1h1)
        !           876: 90002 format (1h )
        !           877: 90001 format (1h ,10x,34hfortran compiler validation system)
        !           878: 90003 format (1h ,21x,11hversion 1.0)
        !           879: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
        !           880: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
        !           881: 90006 format (1h ,5x,46h----------------------------------------------)
        !           882: 90011 format (1h ,18x,17hsubset level test)
        !           883: c
        !           884: c     format statements for run summaries
        !           885: 90008 format (1h ,15x,i5,19h errors encountered)
        !           886: 90009 format (1h ,15x,i5,13h tests passed)
        !           887: 90010 format (1h ,15x,i5,14h tests deleted)
        !           888: c
        !           889: c     format statements for test results
        !           890: 80001 format (1h ,4x,i5,7x,4hpass)
        !           891: 80002 format (1h ,4x,i5,7x,4hfail)
        !           892: 80003 format (1h ,4x,i5,7x,7hdeleted)
        !           893: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
        !           894: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
        !           895: c
        !           896: 90007 format (1h ,20x,20hend of program fm018)
        !           897:       end

unix.superglobalmegacorp.com

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