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

1.1       root        1: c     comment section
                      2: c
                      3: c     fm026
                      4: c
                      5: c         this routine contains the basic subroutine reference tests.
                      6: c     the subroutine fs027 is called by this program.  the subroutine
                      7: c     fs027 increments the calling argument by 1 and returns to the
                      8: c     calling program.
                      9: c
                     10: c         execution of a subroutine reference results in an association
                     11: c     of actual arguments with all appearances of dummy arguments in
                     12: c     the defining subprogram.  following these associations, execution
                     13: c     of the first executable statement of the defining subprogram
                     14: c     is undertaken.
                     15: c
                     16: c      references
                     17: c        american national standard programming language fortran,
                     18: c              x3.9-1978
                     19: c
                     20: c        section 15.6.2, subroutine reference
                     21: c
                     22: c      **********************************************************
                     23: c
                     24: c         a compiler validation system for the fortran language
                     25: c     based on specifications as defined in american national standard
                     26: c     programming language fortran x3.9-1978, has been developed by the
                     27: c     federal cobol compiler testing service.  the fortran compiler
                     28: c     validation system (fcvs) consists of audit routines, their related
                     29: c     data, and an executive system.  each audit routine is a fortran
                     30: c     program, subprogram or function which includes tests of specific
                     31: c     language elements and supporting procedures indicating the result
                     32: c     of executing these tests.
                     33: c
                     34: c         this particular program/subprogram/function contains features
                     35: c     found only in the subset as defined in x3.9-1978.
                     36: c
                     37: c         suggestions and comments should be forwarded to -
                     38: c
                     39: c                  department of the navy
                     40: c                  federal cobol compiler testing service
                     41: c                  washington, d.c.  20376
                     42: c
                     43: c      **********************************************************
                     44: c
                     45: c
                     46: c
                     47: c     initialization section
                     48: c
                     49: c     initialize constants
                     50: c      **************
                     51: c     i01 contains the logical unit number for the card reader.
                     52:       i01 = 5
                     53: c     i02 contains the logical unit number for the printer.
                     54:       i02 = 6
                     55: c     system environment section
                     56: c
                     57: cx010    this card is replaced by contents of fexec x-010 control card.
                     58: c     the cx010 card is for overriding the program default i01 = 5
                     59: c     (unit number for card reader).
                     60: cx011    this card is replaced by contents of fexec x-011 control card.
                     61: c     the cx011 card is for systems which require additional
                     62: c     fortran statements for files associated with cx010 above.
                     63: c
                     64: cx020    this card is replaced by contents of fexec x-020 control card.
                     65: c     the cx020 card is for overriding the program default i02 = 6
                     66: c     (unit number for printer).
                     67: cx021    this card is replaced by contents of fexec x-021 control card.
                     68: c     the cx021 card is for systems which require additional
                     69: c     fortran statements for files associated with cx020 above.
                     70: c
                     71:       ivpass=0
                     72:       ivfail=0
                     73:       ivdele=0
                     74:       iczero=0
                     75: c
                     76: c     write page headers
                     77:       write (i02,90000)
                     78:       write (i02,90001)
                     79:       write (i02,90002)
                     80:       write (i02, 90002)
                     81:       write (i02,90003)
                     82:       write (i02,90002)
                     83:       write (i02,90004)
                     84:       write (i02,90002)
                     85:       write (i02,90011)
                     86:       write (i02,90002)
                     87:       write (i02,90002)
                     88:       write (i02,90005)
                     89:       write (i02,90006)
                     90:       write (i02,90002)
                     91: c
                     92: c     test section
                     93: c
                     94: c         subroutine reference - call
                     95: c
                     96:       ivtnum = 666
                     97: c
                     98: c      ****  test 666  ****
                     99: c     subroutine call - argument name same as subroutine argument name.
                    100: c
                    101:       if (iczero) 36660, 6660, 36660
                    102:  6660 continue
                    103:       ivon01 = 0
                    104:       call fs027(ivon01)
                    105:       ivcomp = ivon01
                    106:       go to 46660
                    107: 36660 ivdele = ivdele + 1
                    108:       write (i02,80003) ivtnum
                    109:       if (iczero) 46660, 6671, 46660
                    110: 46660 if (ivcomp - 1) 26660,16660,26660
                    111: 16660 ivpass = ivpass + 1
                    112:       write (i02,80001) ivtnum
                    113:       go to 6671
                    114: 26660 ivfail = ivfail + 1
                    115:       ivcorr = 1
                    116:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    117:  6671 continue
                    118:       ivtnum = 667
                    119: c
                    120: c      ****  test 667  ****
                    121: c     subroutine call - argument name same as internal variable in
                    122: c         subroutine.
                    123: c
                    124:       if (iczero) 36670, 6670, 36670
                    125:  6670 continue
                    126:       ivon02 = 2
                    127:       call fs027(ivon02)
                    128:       ivcomp = ivon02
                    129:       go to 46670
                    130: 36670 ivdele = ivdele + 1
                    131:       write (i02,80003) ivtnum
                    132:       if (iczero) 46670, 6681, 46670
                    133: 46670 if (ivcomp - 3) 26670,16670,26670
                    134: 16670 ivpass = ivpass + 1
                    135:       write (i02,80001) ivtnum
                    136:       go to 6681
                    137: 26670 ivfail = ivfail + 1
                    138:       ivcorr = 3
                    139:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    140:  6681 continue
                    141:       ivtnum = 668
                    142: c
                    143: c      ****  test 668  ****
                    144: c     subroutine call - argument name different from subroutine argument
                    145: c         and internal variable.
                    146: c
                    147:       if (iczero) 36680, 6680, 36680
                    148:  6680 continue
                    149:       ivon01 = 7
                    150:       ivon03 = -12
                    151:       call fs027(ivon03)
                    152:       ivcomp = ivon03
                    153:       go to 46680
                    154: 36680 ivdele = ivdele + 1
                    155:       write (i02,80003) ivtnum
                    156:       if (iczero) 46680, 6691, 46680
                    157: 46680 if (ivcomp + 11 ) 26680,16680,26680
                    158: 16680 ivpass = ivpass + 1
                    159:       write (i02,80001) ivtnum
                    160:       go to 6691
                    161: 26680 ivfail = ivfail + 1
                    162:       ivcorr = -11
                    163:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    164:  6691 continue
                    165:       ivtnum = 669
                    166: c
                    167: c      ****  test 669  ****
                    168: c     repeated subroutine calls in a do loop.
                    169: c
                    170:       if (iczero) 36690, 6690, 36690
                    171:  6690 continue
                    172:       ivcomp = 0
                    173:       do 6692 ivon04 = 1,5
                    174:       call fs027 (ivcomp)
                    175:  6692 continue
                    176:       go to 46690
                    177: 36690 ivdele = ivdele + 1
                    178:       write (i02,80003) ivtnum
                    179:       if (iczero) 46690, 6701, 46690
                    180: 46690 if (ivcomp - 5) 26690,16690,26690
                    181: 16690 ivpass = ivpass + 1
                    182:       write (i02,80001) ivtnum
                    183:       go to 6701
                    184: 26690 ivfail = ivfail + 1
                    185:       ivcorr = 5
                    186:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    187: c      ****     end of tests   ****
                    188:  6701 continue
                    189: c
                    190: c     write page footings and run summaries
                    191: 99999 continue
                    192:       write (i02,90002)
                    193:       write (i02,90006)
                    194:       write (i02,90002)
                    195:       write (i02,90002)
                    196:       write (i02,90007)
                    197:       write (i02,90002)
                    198:       write (i02,90008)  ivfail
                    199:       write (i02,90009) ivpass
                    200:       write (i02,90010) ivdele
                    201: c
                    202: c
                    203: c     terminate routine execution
                    204:       stop
                    205: c
                    206: c     format statements for page headers
                    207: 90000 format (1h1)
                    208: 90002 format (1h )
                    209: 90001 format (1h ,10x,34hfortran compiler validation system)
                    210: 90003 format (1h ,21x,11hversion 1.0)
                    211: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
                    212: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
                    213: 90006 format (1h ,5x,46h----------------------------------------------)
                    214: 90011 format (1h ,18x,17hsubset level test)
                    215: c
                    216: c     format statements for run summaries
                    217: 90008 format (1h ,15x,i5,19h errors encountered)
                    218: 90009 format (1h ,15x,i5,13h tests passed)
                    219: 90010 format (1h ,15x,i5,14h tests deleted)
                    220: c
                    221: c     format statements for test results
                    222: 80001 format (1h ,4x,i5,7x,4hpass)
                    223: 80002 format (1h ,4x,i5,7x,4hfail)
                    224: 80003 format (1h ,4x,i5,7x,7hdeleted)
                    225: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
                    226: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
                    227: c
                    228: 90007 format (1h ,20x,20hend of program fm026)
                    229:       end

unix.superglobalmegacorp.com

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