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

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

unix.superglobalmegacorp.com

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