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

1.1       root        1: c     comment section
                      2: c
                      3: c     fm002
                      4: c
                      5: c         this routine checks that comment lines which have valid
                      6: c     fortran statements do not affect the execution of the program
                      7: c     in any way.
                      8: c
                      9: c      references
                     10: c        american national standard programming language fortran,
                     11: c              x3.9-1978
                     12: c
                     13: c                   section 3.2.1, comment line
                     14: c
                     15: c      **********************************************************
                     16: c
                     17: c         a compiler validation system for the fortran language
                     18: c     based on specifications as defined in american national standard
                     19: c     programming language fortran x3.9-1978, has been developed by the
                     20: c     federal cobol compiler testing service.  the fortran compiler
                     21: c     validation system (fcvs) consists of audit routines, their related
                     22: c     data, and an executive system.  each audit routine is a fortran
                     23: c     program, subprogram or function which includes tests of specific
                     24: c     language elements and supporting procedures indicating the result
                     25: c     of executing these tests.
                     26: c
                     27: c         this particular program/subprogram/function contains features
                     28: c     found only in the subset as defined in x3.9-1978.
                     29: c
                     30: c         suggestions and comments should be forwarded to -
                     31: c
                     32: c                  department of the navy
                     33: c                  federal cobol compiler testing service
                     34: c                  washington, d.c.  20376
                     35: c
                     36: c      **********************************************************
                     37: c
                     38: c
                     39: c
                     40: c     initialization section
                     41: c
                     42: c     initialize constants
                     43: c      **************
                     44: c     i01 contains the logical unit number for the card reader.
                     45:       i01 = 5
                     46: c     i02 contains the logical unit number for the printer.
                     47:       i02 = 6
                     48: c     system environment section
                     49: c
                     50: cx010    this card is replaced by contents of fexec x-010 control card.
                     51: c     the cx010 card is for overriding the program default i01 = 5
                     52: c     (unit number for card reader).
                     53: cx011    this card is replaced by contents of fexec x-011 control card.
                     54: c     the cx011 card is for systems which require additional
                     55: c     fortran statements for files associated with cx010 above.
                     56: c
                     57: cx020    this card is replaced by contents of fexec x-020 control card.
                     58: c     the cx020 card is for overriding the program default i02 = 6
                     59: c     (unit number for printer).
                     60: cx021    this card is replaced by contents of fexec x-021 control card.
                     61: c     the cx021 card is for systems which require additional
                     62: c     fortran statements for files associated with cx020 above.
                     63: c
                     64:       ivpass=0
                     65:       ivfail=0
                     66:       ivdele=0
                     67:       iczero=0
                     68: c
                     69: c     write page headers
                     70:       write (i02,90000)
                     71:       write (i02,90001)
                     72:       write (i02,90002)
                     73:       write (i02, 90002)
                     74:       write (i02,90003)
                     75:       write (i02,90002)
                     76:       write (i02,90004)
                     77:       write (i02,90002)
                     78:       write (i02,90011)
                     79:       write (i02,90002)
                     80:       write (i02,90002)
                     81:       write (i02,90005)
                     82:       write (i02,90006)
                     83:       write (i02,90002)
                     84: c     test section
                     85: c
                     86:    41 continue
                     87:       ivtnum=4
                     88: c
                     89: c      ****  test 004  ****
                     90: c     test 004  -  blank comment line
                     91: c
                     92:       if (iczero) 30040,40,30040
                     93:    40 continue
                     94:       ivon01=4
                     95: c
                     96:       go to 40040
                     97: 30040 ivdele=ivdele+1
                     98:       write (i02,80003) ivtnum
                     99:       if (iczero) 40040, 51, 40040
                    100: 40040 if (ivon01 - 4) 20040, 10040, 20040
                    101: 10040 ivpass=ivpass+1
                    102:       write (i02,80001) ivtnum
                    103:       go to 51
                    104: 20040 ivfail=ivfail+1
                    105:       ivcomp=ivon01
                    106:       ivcorr=4
                    107:       write (i02,80004) ivtnum,ivcomp,ivcorr
                    108:    51 continue
                    109:       ivtnum=5
                    110: c
                    111: c      ****  test 005  ****
                    112: c     test 005  - go to in comment line
                    113: c
                    114:       if (iczero) 30050, 50, 30050
                    115:    50 continue
                    116:       ivon01 = 3
                    117: c     go to 20050
                    118:       ivon01=5
                    119:       go to 40050
                    120: 30050 ivdele=ivdele+1
                    121:       write (i02,80003) ivtnum
                    122:       if (iczero) 40050, 61, 40050
                    123: 40050 if (ivon01 - 5) 20050,10050,20050
                    124: 10050 ivpass=ivpass+1
                    125:       write (i02,80001) ivtnum
                    126:       go to 61
                    127: 20050 ivfail=ivfail+1
                    128:       ivcomp=ivon01
                    129:       ivcorr=5
                    130:       write (i02,80004) ivtnum,ivcomp,ivcorr
                    131:    61 continue
                    132:       ivtnum=6
                    133: c
                    134: c      ****  test 006  ****
                    135: c     test 006 - integer assignment statement in comment line
                    136: c
                    137:       if (iczero) 30060,60,30060
                    138:    60 continue
                    139:       ivon01=6
                    140: c     ivon01=1
                    141:       go to 40060
                    142: 30060 ivdele=ivdele+1
                    143:       write (i02,80003) ivtnum
                    144:       if (iczero) 40060,71,40060
                    145: 40060 if (ivon01-6) 20060,10060,20060
                    146: 10060 ivpass=ivpass+1
                    147:       write (i02,80001) ivtnum
                    148:       go to 71
                    149: 20060 ivfail=ivfail+1
                    150:       ivcomp=ivon01
                    151:       ivcorr=6
                    152:       write (i02,80004) ivtnum,ivcomp,ivcorr
                    153:    71 continue
                    154:       ivtnum=7
                    155: c
                    156: c      ****  test  007  ****
                    157: c     test 007 - integer assignment statement in comment line
                    158: c                integer expression to right of =
                    159: c
                    160:       if (iczero) 30070,70,30070
                    161:    70 continue
                    162:       ivon02=6
                    163:       ivon01=7
                    164: c     ivon01= 3*ivon02
                    165:       go to 40070
                    166: 30070 ivdele=ivdele+1
                    167:       write (i02,80003) ivtnum
                    168:       if (iczero) 40070,81,40070
                    169: 40070 if (ivon01-7) 20070,10070,20070
                    170: 10070 ivpass=ivpass+1
                    171:       write (i02,80001) ivtnum
                    172:       go to 81
                    173: 20070 ivfail=ivfail+1
                    174:       ivcomp=ivon01
                    175:       ivcorr=7
                    176:       write (i02,80004) ivtnum,ivcomp,ivcorr
                    177:    81 continue
                    178:       ivtnum=8
                    179: c
                    180: c      ****  test 008  ****
                    181: c     test 008 - if statement in comment line
                    182: c
                    183:       if (iczero) 30080,80,30080
                    184:    80 continue
                    185:       ivon01=300
                    186: c     if (ivon01) 20080,20080,20080
                    187:       ivon01=8
                    188:       go to 40080
                    189: 30080 ivdele=ivdele+1
                    190:       write (i02,80003) ivtnum
                    191:       if (iczero) 40080,91,40080
                    192: 40080 if (ivon01-8) 20080,10080,20080
                    193: 10080 ivpass=ivpass+1
                    194:       write (i02,80001) ivtnum
                    195:       go to 91
                    196: 20080 ivfail=ivfail+1
                    197:       ivcomp=ivon01
                    198:       ivcorr=8
                    199:       write (i02,80004) ivtnum,ivcomp,ivcorr
                    200:    91 continue
                    201:       ivtnum=9
                    202: c
                    203: c      ****  test 009  ****
                    204: c     test 009 - write statement in a comment line
                    205: c
                    206:       if (iczero) 30090,90,30090
                    207:    90 continue
                    208:       ivon01=200
                    209: c  92 write (i02,80002)  ivtnum
                    210:       ivon01=9
                    211:       go to 40090
                    212: 30090 ivdele=ivdele+1
                    213:       write (i02,80003) ivtnum
                    214:       if (iczero) 40090,101,40090
                    215: 40090 if (ivon01-9) 20090,10090,20090
                    216: 10090 ivpass=ivpass+1
                    217:       write (i02,80001) ivtnum
                    218:       go to 101
                    219: 20090 ivfail=ivfail+1
                    220:       ivcomp=ivon01
                    221:       ivcorr=9
                    222:       write (i02,80004) ivtnum,ivcomp,ivcorr
                    223:   101 ivtnum=10
                    224: c
                    225: c      ****  test 010  ****
                    226: c     test 010 - statement label in comment line
                    227: c
                    228:       if (iczero) 30100,100,30100
                    229:   100 continue
                    230:       go to 102
                    231: c 102 write (i02,80002)
                    232: c     go to 111
                    233:   102 ivon01=10
                    234:       go to 40100
                    235: 30100 ivdele=ivdele+1
                    236:       write (i02,80003) ivtnum
                    237:       if (iczero) 40100,111,40100
                    238: 40100 if (ivon01-10) 20100,10100,20100
                    239: 10100 ivpass=ivpass+1
                    240:       write (i02,80001) ivtnum
                    241:       go to 111
                    242: 20100 ivfail=ivfail+1
                    243:       ivcomp=ivon01
                    244:       ivcorr=10
                    245:       write (i02,80004) ivtnum,ivcomp,ivcorr
                    246:   111 continue
                    247:       ivtnum=11
                    248: c
                    249: c      ****  test 011  ****
                    250: c     test 011 - continue in comment line
                    251: c                followed by integer assignment statement in comment
                    252: c
                    253:       if (iczero) 30110,110,30110
                    254:   110 ivon01=11
                    255: c     continue
                    256: c     ivon01=7000
                    257:       go to 40110
                    258: 30110 ivdele=ivdele+1
                    259:       write (i02,80003) ivtnum
                    260:       if (iczero) 40110,121,40110
                    261: 40110 if (ivon01 -11) 20110,10110,20110
                    262: 10110 ivpass=ivpass+1
                    263:       write (i02,80001) ivtnum
                    264:       go to 121
                    265: 20110 ivfail=ivfail+1
                    266:       ivcomp=ivon01
                    267:       ivcorr=11
                    268:       write (i02,80004) ivtnum,ivcomp,ivcorr
                    269:   121 continue
                    270:       ivtnum=12
                    271: c
                    272: c      ****  test 012  ****
                    273: c     test 012 - integer assignment statement in comment line
                    274: c
                    275:       if (iczero) 30120,120,30120
                    276:   120 continue
                    277:       ivon01=12
                    278: c     ivon01=ivon01+1
                    279:       go to 40120
                    280: 30120 ivdele=ivdele+1
                    281:       write (i02,80003) ivtnum
                    282:       if (iczero) 40120,99999,40120
                    283: 40120 if (ivon01 - 12) 20120,10120,20120
                    284: 10120 ivpass=ivpass+1
                    285:       write (i02,80001) ivtnum
                    286:       go to 99999
                    287: 20120 ivfail=ivfail+1
                    288:       ivcomp=ivon01
                    289:       ivcorr=12
                    290:       write (i02,80004) ivtnum,ivcomp,ivcorr
                    291: c
                    292: c     write page footings and run summaries
                    293: 99999 continue
                    294:       write (i02,90002)
                    295:       write (i02,90006)
                    296:       write (i02,90002)
                    297:       write (i02,90002)
                    298:       write (i02,90007)
                    299:       write (i02,90002)
                    300:       write (i02,90008)  ivfail
                    301:       write (i02,90009) ivpass
                    302:       write (i02,90010) ivdele
                    303: c
                    304: c
                    305: c     terminate routine execution
                    306:       stop
                    307: c
                    308: c     format statements for page headers
                    309: 90000 format (1h1)
                    310: 90002 format (1h )
                    311: 90001 format (1h ,10x,34hfortran compiler validation system)
                    312: 90003 format (1h ,21x,11hversion 1.0)
                    313: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
                    314: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
                    315: 90006 format (1h ,5x,46h----------------------------------------------)
                    316: 90011 format (1h ,18x,17hsubset level test)
                    317: c
                    318: c     format statements for run summaries
                    319: 90008 format (1h ,15x,i5,19h errors encountered)
                    320: 90009 format (1h ,15x,i5,13h tests passed)
                    321: 90010 format (1h ,15x,i5,14h tests deleted)
                    322: c
                    323: c     format statements for test results
                    324: 80001 format (1h ,4x,i5,7x,4hpass)
                    325: 80002 format (1h ,4x,i5,7x,4hfail)
                    326: 80003 format (1h ,4x,i5,7x,7hdeleted)
                    327: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
                    328: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
                    329: c
                    330: 90007 format (1h ,20x,20hend of program fm002)
                    331: c     comment line before end statement
                    332:       end

unix.superglobalmegacorp.com

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