Annotation of 43BSDTahoe/usr.bin/f77/testf77/tests/fm010.f, revision 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.