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

1.1       root        1: c     comment section.
                      2: c
                      3: c      fm010
                      4: c
                      5: c             this routine tests reference format of fortran statements
                      6: c     and statement numbers.  the use of the blank character is tested
                      7: c     both within the statement number field and within the fortran
                      8: c     statements themselves.  leading zero is tested for statements and
                      9: c     integer constants.  variable names which look very much like
                     10: c     fortran reserved words are tested in arithmetic assignment
                     11: c     statements.  naming conventions used throughout the fcvs are
                     12: c     tested also in arithmetic assignment statements.
                     13: c
                     14: c      references
                     15: c        american national standard programming language fortran,
                     16: c              x3.9-1978
                     17: c
                     18: c        section 2.5, variables
                     19: c        section 3.1.6, blank character
                     20: c        section 3.2.2, initial lines
                     21: c        section 3.4, statement labels
                     22: c
                     23: c
                     24: c      **********************************************************
                     25: c
                     26: c         a compiler validation system for the fortran language
                     27: c     based on specifications as defined in american national standard
                     28: c     programming language fortran x3.9-1978, has been developed by the
                     29: c     federal cobol compiler testing service.  the fortran compiler
                     30: c     validation system (fcvs) consists of audit routines, their related
                     31: c     data, and an executive system.  each audit routine is a fortran
                     32: c     program, subprogram or function which includes tests of specific
                     33: c     language elements and supporting procedures indicating the result
                     34: c     of executing these tests.
                     35: c
                     36: c         this particular program/subprogram/function contains features
                     37: c     found only in the subset as defined in x3.9-1978.
                     38: c
                     39: c         suggestions and comments should be forwarded to -
                     40: c
                     41: c                  department of the navy
                     42: c                  federal cobol compiler testing service
                     43: c                  washington, d.c.  20376
                     44: c
                     45: c      **********************************************************
                     46: c
                     47: c
                     48: c
                     49: c     initialization section
                     50: c
                     51: c     initialize constants
                     52: c      **************
                     53: c     i01 contains the logical unit number for the card reader.
                     54:       i01 = 5
                     55: c     i02 contains the logical unit number for the printer.
                     56:       i02 = 6
                     57: c     system environment section
                     58: c
                     59: cx010    this card is replaced by contents of fexec x-010 control card.
                     60: c     the cx010 card is for overriding the program default i01 = 5
                     61: c     (unit number for card reader).
                     62: cx011    this card is replaced by contents of fexec x-011 control card.
                     63: c     the cx011 card is for systems which require additional
                     64: c     fortran statements for files associated with cx010 above.
                     65: c
                     66: cx020    this card is replaced by contents of fexec x-020 control card.
                     67: c     the cx020 card is for overriding the program default i02 = 6
                     68: c     (unit number for printer).
                     69: cx021    this card is replaced by contents of fexec x-021 control card.
                     70: c     the cx021 card is for systems which require additional
                     71: c     fortran statements for files associated with cx020 above.
                     72: c
                     73:       ivpass=0
                     74:       ivfail=0
                     75:       ivdele=0
                     76:       iczero=0
                     77: c
                     78: c     write page headers
                     79:       write (i02,90000)
                     80:       write (i02,90001)
                     81:       write (i02,90002)
                     82:       write (i02, 90002)
                     83:       write (i02,90003)
                     84:       write (i02,90002)
                     85:       write (i02,90004)
                     86:       write (i02,90002)
                     87:       write (i02,90011)
                     88:       write (i02,90002)
                     89:       write (i02,90002)
                     90:       write (i02,90005)
                     91:       write (i02,90006)
                     92:       write (i02,90002)
                     93:  1001 continue
                     94:       ivtnum = 100
                     95: c
                     96: c      ****  test  100  ****
                     97: c
                     98: c     test 100  -  to check the various combinations of forming variable
                     99: c           names.  these are actually symbolic names (ansi x3.9-1978
                    100: c           section 2.2).  this is basically a syntax check using a
                    101: c           combination of from one to six alphanumeric characters with
                    102: c           the first character always alphabetic.  reference format is
                    103: c           also checked by having each assignment statement an initial
                    104: c           line (section 3.2.2).  this means zero may appear in column
                    105: c           six without effect, that lines may begin anywhere from
                    106: c           column seven to column 72, and blanks may be used freely
                    107: c           without meaning (3.1.6 blank characters).
                    108: c
                    109:       if (iczero) 31000, 1000, 31000
                    110:  1000 continue
                    111:       a=1.
                    112:       b =2.
                    113:       c =3.
                    114:       d   =4.
                    115:       e     =5.
                    116:       f      =6.
                    117:      0g                      =                   7.
                    118:                                         h=8.
                    119:                                                                      i=9
                    120:       j  =  10
                    121:           k        =          11
                    122:       l                                 =                             12
                    123:      0m=13
                    124:       n=14
                    125:       o=15.
                    126:       p=16.
                    127:       q=17.
                    128:       r=18.
                    129:       s=19.
                    130:       t=20.
                    131:       u=21.
                    132:       v=22.
                    133:       w=23.
                    134:       x=24.
                    135:       y=25.
                    136:       z=26.
                    137:       aaaaaa=27.
                    138:       bbbbb=28.
                    139:       cccc=29.
                    140:       ddd=30
                    141:       ee=31.
                    142:       f0=32.
                    143:       g12=33.
                    144:       h345 = 34.
                    145:       i6789 = 35
                    146:       j01234 = 36
                    147:       k 5 6 78  9=37
                    148:        l 2 l 2 l 2 =38
                    149:         m  3   m           3                      m3   =              39
                    150:          n         40        =                   4                     0
                    151:      0    omy    =           4                                        1.
                    152:       i   pm   h =           4                                         2
                    153:       go to 1 = 4 3.
                    154:       if 3 = 44
                    155:       do 3 =   53.
                    156:       call fl =62.
                    157:       type i = 63.
                    158:       true   =71.
                    159:       false  = 72.
                    160:       go to 41000
                    161: 31000 ivdele = ivdele + 1
                    162:       write (i02,80003) ivtnum
                    163:       if (iczero) 41000, 1011, 41000
                    164: 41000 if (ipmh - 42) 21000,11000,21000
                    165: 11000 ivpass = ivpass + 1
                    166:       write (i02,80001) ivtnum
                    167:       go to 1011
                    168: 21000 ivfail = ivfail + 1
                    169:       ivcomp = ipmh
                    170:       ivcorr = 42
                    171:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    172:  1011 continue
                    173:       ivtnum = 101
                    174: c
                    175: c      ****  test  101  ****
                    176: c     test 101  -  checks the fcvs naming conventions for integer and
                    177: c           real variables in assignment statements: variable = constant
                    178: c           basically a syntax check on six character variable names.
                    179: c
                    180:       if (iczero) 31010, 1010, 31010
                    181:  1010 continue
                    182:       iace11 = 1
                    183:       iace21 = 2
                    184:       iace31 = 3
                    185:       iacn11 = 4
                    186:       iadn11 = 5
                    187:       iate31 = 6
                    188:       race11 = 7.
                    189:       race21 = 8.
                    190:       racn31 = 9.
                    191:       rade31 = 10.
                    192:       ivte69 = 11
                    193:       ivon78 = 12
                    194:       rvtnaz = 13.
                    195:       rvoez9 = 14.
                    196:       icte96 = 15
                    197:       icon84 = 16
                    198:       rcon48 = 17.
                    199:       rcte54 = 18.
                    200:       idony4 = 19
                    201:       idoeb6 = 20
                    202:       rdon46 = 21.
                    203:       ifons3 = 22
                    204:       rfon77 = 23.
                    205:       go to 41010
                    206: 31010 ivdele = ivdele + 1
                    207:       write (i02,80003) ivtnum
                    208:       if (iczero) 41010, 1021, 41010
                    209: 41010 if (ivte69 - 11) 21010,11010,21010
                    210: 11010 ivpass = ivpass + 1
                    211:       write (i02,80001) ivtnum
                    212:       go to 1021
                    213: 21010 ivfail = ivfail + 1
                    214:       ivcomp = ivte69
                    215:       ivcorr = 11
                    216:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    217:  1021 continue
                    218:       ivtnum = 102
                    219: c
                    220: c      ****  test  102  ****
                    221: c     test 102  -  reference format check on statement labels (section
                    222: c           3.4). these are non-zero integers, from 1 to 5 digits,
                    223: c           may begin anywhere from cols. 1 to 5, and leading zeros are
                    224: c           not significant.  blanks will be imbedded in some of the
                    225: c           statement labels and these should have no effect.  the
                    226: c           continue statement (section 11.11) is used for this test.
                    227: c           a basic fcvs assumption is that the logic will fall thru a
                    228: c           series of continue statements (normal execution sequence).
                    229: c
                    230:       if (iczero) 31020, 1020, 31020
                    231:  1020 continue
                    232: 1     continue
                    233:  2    continue
                    234:   3   continue
                    235:    4  continue
                    236:     5 continue
                    237: 06    continue
                    238:  007  continue
                    239:  0008 continue
                    240: 00009 continue
                    241:  010  continue
                    242: 1   1 continue
                    243:  0 12 continue
                    244: 0 1 3 continue
                    245: 00 14 continue
                    246: 0 15  continue
                    247: 0 016 continue
                    248: 100   continue
                    249: 1 0 1 continue
                    250: 10  2 ivon01 = 1
                    251: 1  03 continue
                    252:  1 04 continue
                    253: 01 05 continue
                    254: 010 6 continue
                    255: 0107  continue
                    256: 00108 continue
                    257: 1 1 1 continue
                    258: 1 111 continue
                    259:   99  continue
                    260: 9 9 9 continue
                    261: 99 99 continue
                    262:       go to 41020
                    263: 31020 ivdele = ivdele + 1
                    264:       write (i02,80003) ivtnum
                    265:       if (iczero) 41020, 1031, 41020
                    266: 41020 if (ivon01 - 1) 21020,11020,21020
                    267: 11020 ivpass = ivpass + 1
                    268:       write (i02,80001) ivtnum
                    269:       go to 1031
                    270: 21020 ivfail = ivfail + 1
                    271:       ivcomp = ivon01
                    272:       ivcorr = 1
                    273:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    274:  1031 continue
                    275: c
                    276: c     write page footings and run summaries
                    277: 99999 continue
                    278:       write (i02,90002)
                    279:       write (i02,90006)
                    280:       write (i02,90002)
                    281:       write (i02,90002)
                    282:       write (i02,90007)
                    283:       write (i02,90002)
                    284:       write (i02,90008)  ivfail
                    285:       write (i02,90009) ivpass
                    286:       write (i02,90010) ivdele
                    287: c
                    288: c
                    289: c     terminate routine execution
                    290:       stop
                    291: c
                    292: c     format statements for page headers
                    293: 90000 format (1h1)
                    294: 90002 format (1h )
                    295: 90001 format (1h ,10x,34hfortran compiler validation system)
                    296: 90003 format (1h ,21x,11hversion 1.0)
                    297: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
                    298: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
                    299: 90006 format (1h ,5x,46h----------------------------------------------)
                    300: 90011 format (1h ,18x,17hsubset level test)
                    301: c
                    302: c     format statements for run summaries
                    303: 90008 format (1h ,15x,i5,19h errors encountered)
                    304: 90009 format (1h ,15x,i5,13h tests passed)
                    305: 90010 format (1h ,15x,i5,14h tests deleted)
                    306: c
                    307: c     format statements for test results
                    308: 80001 format (1h ,4x,i5,7x,4hpass)
                    309: 80002 format (1h ,4x,i5,7x,4hfail)
                    310: 80003 format (1h ,4x,i5,7x,7hdeleted)
                    311: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
                    312: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
                    313: c
                    314: 90007 format (1h ,20x,20hend of program fm010)
                    315:       end

unix.superglobalmegacorp.com

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