|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.