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

1.1     ! root        1: c
        !             2: c     comment section.
        !             3: c
        !             4: c     fm014
        !             5: c
        !             6: c             this routine tests the fortran   computed go to statement.
        !             7: c     because the form of the computed go to is so straightforward, the
        !             8: c     tests mainly relate to the range of possible statement numbers
        !             9: c     which are used.
        !            10: c
        !            11: c      references
        !            12: c        american national standard programming language fortran,
        !            13: c              x3.9-1978
        !            14: c
        !            15: c        section 11.2, computed go to statement
        !            16: c
        !            17: c
        !            18: c      **********************************************************
        !            19: c
        !            20: c         a compiler validation system for the fortran language
        !            21: c     based on specifications as defined in american national standard
        !            22: c     programming language fortran x3.9-1978, has been developed by the
        !            23: c     federal cobol compiler testing service.  the fortran compiler
        !            24: c     validation system (fcvs) consists of audit routines, their related
        !            25: c     data, and an executive system.  each audit routine is a fortran
        !            26: c     program, subprogram or function which includes tests of specific
        !            27: c     language elements and supporting procedures indicating the result
        !            28: c     of executing these tests.
        !            29: c
        !            30: c         this particular program/subprogram/function contains features
        !            31: c     found only in the subset as defined in x3.9-1978.
        !            32: c
        !            33: c         suggestions and comments should be forwarded to -
        !            34: c
        !            35: c                  department of the navy
        !            36: c                  federal cobol compiler testing service
        !            37: c                  washington, d.c.  20376
        !            38: c
        !            39: c      **********************************************************
        !            40: c
        !            41: c
        !            42: c
        !            43: c     initialization section
        !            44: c
        !            45: c     initialize constants
        !            46: c      **************
        !            47: c     i01 contains the logical unit number for the card reader.
        !            48:       i01 = 5
        !            49: c     i02 contains the logical unit number for the printer.
        !            50:       i02 = 6
        !            51: c     system environment section
        !            52: c
        !            53: cx010    this card is replaced by contents of fexec x-010 control card.
        !            54: c     the cx010 card is for overriding the program default i01 = 5
        !            55: c     (unit number for card reader).
        !            56: cx011    this card is replaced by contents of fexec x-011 control card.
        !            57: c     the cx011 card is for systems which require additional
        !            58: c     fortran statements for files associated with cx010 above.
        !            59: c
        !            60: cx020    this card is replaced by contents of fexec x-020 control card.
        !            61: c     the cx020 card is for overriding the program default i02 = 6
        !            62: c     (unit number for printer).
        !            63: cx021    this card is replaced by contents of fexec x-021 control card.
        !            64: c     the cx021 card is for systems which require additional
        !            65: c     fortran statements for files associated with cx020 above.
        !            66: c
        !            67:       ivpass=0
        !            68:       ivfail=0
        !            69:       ivdele=0
        !            70:       iczero=0
        !            71: c
        !            72: c     write page headers
        !            73:       write (i02,90000)
        !            74:       write (i02,90001)
        !            75:       write (i02,90002)
        !            76:       write (i02, 90002)
        !            77:       write (i02,90003)
        !            78:       write (i02,90002)
        !            79:       write (i02,90004)
        !            80:       write (i02,90002)
        !            81:       write (i02,90011)
        !            82:       write (i02,90002)
        !            83:       write (i02,90002)
        !            84:       write (i02,90005)
        !            85:       write (i02,90006)
        !            86:       write (i02,90002)
        !            87:       ivtnum = 131
        !            88: c
        !            89: c     test 131  -  test of the simplist form of the computed go to
        !            90: c           statement with three possible branches.
        !            91: c
        !            92: c
        !            93:       if (iczero) 31310, 1310, 31310
        !            94:  1310 continue
        !            95:       icon01=0
        !            96:       i=3
        !            97:       go to ( 1312, 1313, 1314 ), i
        !            98:  1312 icon01 = 1312
        !            99:       go to 1315
        !           100:  1313 icon01 = 1313
        !           101:       go to 1315
        !           102:  1314 icon01 = 1314
        !           103:  1315 continue
        !           104:       go to 41310
        !           105: 31310 ivdele = ivdele + 1
        !           106:       write (i02,80003) ivtnum
        !           107:       if (iczero) 41310, 1321, 41310
        !           108: 41310 if ( icon01 - 1314 )  21310, 11310, 21310
        !           109: 11310 ivpass = ivpass + 1
        !           110:       write (i02,80001) ivtnum
        !           111:       go to 1321
        !           112: 21310 ivfail = ivfail + 1
        !           113:       ivcomp=icon01
        !           114:       ivcorr = 1314
        !           115:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           116:  1321 continue
        !           117:       ivtnum = 132
        !           118: c
        !           119: c     test 132  -  this tests the computed go to in conjunction with the
        !           120: c           the unconditional go to statement.  this test is not
        !           121: c           intended to be an example of good structured programming.
        !           122: c
        !           123: c
        !           124:       if (iczero) 31320, 1320, 31320
        !           125:  1320 continue
        !           126:       ivon01=0
        !           127:       j=1
        !           128:       go to 1326
        !           129:  1322 j = 2
        !           130:       ivon01=ivon01+2
        !           131:       go to 1326
        !           132:  1323 j = 3
        !           133:       ivon01=ivon01 * 10 + 3
        !           134:       go to 1326
        !           135:  1324 j = 4
        !           136:       ivon01=ivon01 * 100 + 4
        !           137:       go to 1326
        !           138:  1325 ivon01 = ivon01 + 1
        !           139:       go to 1327
        !           140:  1326 go to ( 1322, 1323, 1324, 1325, 1326 ), j
        !           141:  1327 continue
        !           142:       go to 41320
        !           143: 31320 ivdele = ivdele + 1
        !           144:       write (i02,80003) ivtnum
        !           145:       if (iczero) 41320, 1331, 41320
        !           146: 41320 if ( ivon01 - 2305 )  21320, 11320, 21320
        !           147: 11320 ivpass = ivpass + 1
        !           148:       write (i02,80001) ivtnum
        !           149:       go to 1331
        !           150: 21320 ivfail = ivfail + 1
        !           151:       ivcomp=ivon01
        !           152:       ivcorr=2305
        !           153:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           154:  1331 continue
        !           155:       ivtnum = 133
        !           156: c
        !           157: c     test 133  -  this is a test of the computed go to statement with
        !           158: c           a single statement label as the list of possible branches.
        !           159: c
        !           160: c
        !           161:       if (iczero) 31330, 1330, 31330
        !           162:  1330 continue
        !           163:       ivon01=0
        !           164:       k=1
        !           165:       go to ( 1332 ), k
        !           166:  1332 ivon01 = 1
        !           167:       go to 41330
        !           168: 31330 ivdele = ivdele + 1
        !           169:       write (i02,80003) ivtnum
        !           170:       if (iczero) 41330, 1341, 41330
        !           171: 41330 if ( ivon01 - 1 )  21330, 11330, 21330
        !           172: 11330 ivpass = ivpass + 1
        !           173:       write (i02,80001) ivtnum
        !           174:       go to 1341
        !           175: 21330 ivfail = ivfail + 1
        !           176:       ivcomp=ivon01
        !           177:       ivcorr=1
        !           178:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           179:  1341 continue
        !           180:       ivtnum = 134
        !           181: c
        !           182: c     test 134  -  this is a test of five (5) digit statement numbers
        !           183: c           which exceed the integer 32767 used in the computed go to
        !           184: c           statement with three possible branches.
        !           185: c
        !           186: c
        !           187:       if (iczero) 31340, 1340, 31340
        !           188:  1340 continue
        !           189:       ivon01=0
        !           190:       l=2
        !           191:       go to ( 99991, 99992, 99993 ), l
        !           192: 99991 ivon01=1
        !           193:       go to 1342
        !           194: 99992 ivon01=2
        !           195:       go to 1342
        !           196: 99993 ivon01=3
        !           197:  1342 continue
        !           198:       go to 41340
        !           199: 31340 ivdele = ivdele + 1
        !           200:       write (i02,80003) ivtnum
        !           201:       if (iczero) 41340, 1351, 41340
        !           202: 41340 if ( ivon01 - 2 )  21340, 11340, 21340
        !           203: 11340 ivpass = ivpass + 1
        !           204:       write (i02,80001) ivtnum
        !           205:       go to 1351
        !           206: 21340 ivfail = ivfail + 1
        !           207:       ivcomp=ivon01
        !           208:       ivcorr=2
        !           209:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           210:  1351 continue
        !           211: c
        !           212: c     write page footings and run summaries
        !           213: 99999 continue
        !           214:       write (i02,90002)
        !           215:       write (i02,90006)
        !           216:       write (i02,90002)
        !           217:       write (i02,90002)
        !           218:       write (i02,90007)
        !           219:       write (i02,90002)
        !           220:       write (i02,90008)  ivfail
        !           221:       write (i02,90009) ivpass
        !           222:       write (i02,90010) ivdele
        !           223: c
        !           224: c
        !           225: c     terminate routine execution
        !           226:       stop
        !           227: c
        !           228: c     format statements for page headers
        !           229: 90000 format (1h1)
        !           230: 90002 format (1h )
        !           231: 90001 format (1h ,10x,34hfortran compiler validation system)
        !           232: 90003 format (1h ,21x,11hversion 1.0)
        !           233: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
        !           234: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
        !           235: 90006 format (1h ,5x,46h----------------------------------------------)
        !           236: 90011 format (1h ,18x,17hsubset level test)
        !           237: c
        !           238: c     format statements for run summaries
        !           239: 90008 format (1h ,15x,i5,19h errors encountered)
        !           240: 90009 format (1h ,15x,i5,13h tests passed)
        !           241: 90010 format (1h ,15x,i5,14h tests deleted)
        !           242: c
        !           243: c     format statements for test results
        !           244: 80001 format (1h ,4x,i5,7x,4hpass)
        !           245: 80002 format (1h ,4x,i5,7x,4hfail)
        !           246: 80003 format (1h ,4x,i5,7x,7hdeleted)
        !           247: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
        !           248: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
        !           249: c
        !           250: 90007 format (1h ,20x,20hend of program fm014)
        !           251:       end

unix.superglobalmegacorp.com

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