Annotation of 43BSDTahoe/usr.bin/f77/testf77/tests/fm050.f, revision 1.1

1.1     ! root        1: c
        !             2: c     comment section
        !             3: c
        !             4: c     fm050
        !             5: c
        !             6: c          this routine contains basic subroutine and function reference
        !             7: c     tests.  four subroutines and one function are called or
        !             8: c     referenced.  fs051 is called to test the calling and passing of
        !             9: c     arguments through unlabeled common.  no arguments are specified
        !            10: c     in the call line.  fs052 is identical to fs051 except that several
        !            11: c     returns are used.  fs053 utilizes many arguments on the call
        !            12: c     statement and many return statements in the subroutine body.
        !            13: c     ff054 is a function subroutine in which many arguments and return
        !            14: c     statements are used.  and finally fs055 passes a one dimenional
        !            15: c     array back to fm050.
        !            16: c
        !            17: c      references
        !            18: c        american national standard programming language fortran,
        !            19: c              x3.9-1978
        !            20: c
        !            21: c        section 15.5.2, referencing an external function
        !            22: c        section 15.6.2, subroutine reference
        !            23: c
        !            24:       common rvcn01,ivcn01,ivcn02,iacn11(20)
        !            25:       integer ff054
        !            26: c
        !            27: c      **********************************************************
        !            28: c
        !            29: c         a compiler validation system for the fortran language
        !            30: c     based on specifications as defined in american national standard
        !            31: c     programming language fortran x3.9-1978, has been developed by the
        !            32: c     federal cobol compiler testing service.  the fortran compiler
        !            33: c     validation system (fcvs) consists of audit routines, their related
        !            34: c     data, and an executive system.  each audit routine is a fortran
        !            35: c     program, subprogram or function which includes tests of specific
        !            36: c     language elements and supporting procedures indicating the result
        !            37: c     of executing these tests.
        !            38: c
        !            39: c         this particular program/subprogram/function contains features
        !            40: c     found only in the subset as defined in x3.9-1978.
        !            41: c
        !            42: c         suggestions and comments should be forwarded to -
        !            43: c
        !            44: c                  department of the navy
        !            45: c                  federal cobol compiler testing service
        !            46: c                  washington, d.c.  20376
        !            47: c
        !            48: c      **********************************************************
        !            49: c
        !            50: c
        !            51: c
        !            52: c     initialization section
        !            53: c
        !            54: c     initialize constants
        !            55: c      **************
        !            56: c     i01 contains the logical unit number for the card reader.
        !            57:       i01 = 5
        !            58: c     i02 contains the logical unit number for the printer.
        !            59:       i02 = 6
        !            60: c     system environment section
        !            61: c
        !            62: cx010    this card is replaced by contents of fexec x-010 control card.
        !            63: c     the cx010 card is for overriding the program default i01 = 5
        !            64: c     (unit number for card reader).
        !            65: cx011    this card is replaced by contents of fexec x-011 control card.
        !            66: c     the cx011 card is for systems which require additional
        !            67: c     fortran statements for files associated with cx010 above.
        !            68: c
        !            69: cx020    this card is replaced by contents of fexec x-020 control card.
        !            70: c     the cx020 card is for overriding the program default i02 = 6
        !            71: c     (unit number for printer).
        !            72: cx021    this card is replaced by contents of fexec x-021 control card.
        !            73: c     the cx021 card is for systems which require additional
        !            74: c     fortran statements for files associated with cx020 above.
        !            75: c
        !            76:       ivpass=0
        !            77:       ivfail=0
        !            78:       ivdele=0
        !            79:       iczero=0
        !            80: c
        !            81: c     write page headers
        !            82:       write (i02,90000)
        !            83:       write (i02,90001)
        !            84:       write (i02,90002)
        !            85:       write (i02, 90002)
        !            86:       write (i02,90003)
        !            87:       write (i02,90002)
        !            88:       write (i02,90004)
        !            89:       write (i02,90002)
        !            90:       write (i02,90011)
        !            91:       write (i02,90002)
        !            92:       write (i02,90002)
        !            93:       write (i02,90005)
        !            94:       write (i02,90006)
        !            95:       write (i02,90002)
        !            96: c     test section
        !            97: c
        !            98: c         subroutine and function subprograms
        !            99: c
        !           100:  4001 continue
        !           101:       ivtnum = 400
        !           102: c
        !           103: c      ****  test 400  ****
        !           104: c     test 400 tests the call to a subroutine containing no arguments.
        !           105: c     all parameters are passed through unlabeled common.
        !           106: c
        !           107:       if (iczero) 34000, 4000, 34000
        !           108:  4000 continue
        !           109:       rvcn01 = 2.1654
        !           110:       call fs051
        !           111:       rvcomp = rvcn01
        !           112:       go to 44000
        !           113: 34000 ivdele = ivdele + 1
        !           114:       write (i02,80003) ivtnum
        !           115:       if (iczero) 44000, 4011, 44000
        !           116: 44000 if (rvcomp - 3.1649) 24000,14000,44001
        !           117: 44001 if (rvcomp - 3.1659) 14000,14000,24000
        !           118: 14000 ivpass = ivpass + 1
        !           119:       write (i02,80001) ivtnum
        !           120:       go to 4011
        !           121: 24000 ivfail = ivfail + 1
        !           122:       rvcorr = 3.1654
        !           123:       write (i02,80005) ivtnum, rvcomp, rvcorr
        !           124:  4011 continue
        !           125: c
        !           126: c     test 401 through test 403 test the call to subroutine fs052 which
        !           127: c     contains no arguments.  all parameters are passed through
        !           128: c     unlabeled common.  subroutine fs052 contain several return
        !           129: c     statements.
        !           130: c
        !           131:       ivtnum = 401
        !           132: c
        !           133: c      ****  test 401  ****
        !           134: c
        !           135:       if (iczero) 34010, 4010, 34010
        !           136:  4010 continue
        !           137:       ivcn01 = 5
        !           138:       ivcn02 = 1
        !           139:       call fs052
        !           140:       ivcomp = ivcn01
        !           141:       go to 44010
        !           142: 34010 ivdele = ivdele + 1
        !           143:       write (i02,80003) ivtnum
        !           144:       if (iczero) 44010, 4021, 44010
        !           145: 44010 if (ivcomp - 6) 24010,14010,24010
        !           146: 14010 ivpass = ivpass + 1
        !           147:       write (i02,80001) ivtnum
        !           148:       go to 4021
        !           149: 24010 ivfail = ivfail + 1
        !           150:       ivcorr = 6
        !           151:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           152:  4021 continue
        !           153:       ivtnum = 402
        !           154: c
        !           155: c      ****  test 402  ****
        !           156: c
        !           157:       if (iczero) 34020, 4020, 34020
        !           158:  4020 continue
        !           159:       ivcn01 = 10
        !           160:       ivcn02 =  5
        !           161:       call fs052
        !           162:       ivcomp = ivcn01
        !           163:       go to 44020
        !           164: 34020 ivdele = ivdele + 1
        !           165:       write (i02,80003) ivtnum
        !           166:       if (iczero) 44020, 4031, 44020
        !           167: 44020 if (ivcomp - 15) 24020,14020,24020
        !           168: 14020 ivpass = ivpass + 1
        !           169:       write (i02,80001) ivtnum
        !           170:       go to 4031
        !           171: 24020 ivfail = ivfail + 1
        !           172:       ivcorr = 15
        !           173:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           174:  4031 continue
        !           175:       ivtnum = 403
        !           176: c
        !           177: c      ****  test 403  ****
        !           178: c
        !           179:       if (iczero) 34030, 4030, 34030
        !           180:  4030 continue
        !           181:       ivcn01 = 30
        !           182:       ivcn02 = 3
        !           183:       call fs052
        !           184:       ivcomp = ivcn01
        !           185:       go to 44030
        !           186: 34030 ivdele = ivdele + 1
        !           187:       write (i02,80003) ivtnum
        !           188:       if (iczero) 44030, 4041, 44030
        !           189: 44030 if (ivcomp - 33) 24030,14030,24030
        !           190: 14030 ivpass = ivpass + 1
        !           191:       write (i02,80001) ivtnum
        !           192:       go to 4041
        !           193: 24030 ivfail = ivfail + 1
        !           194:       ivcorr = 33
        !           195:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           196:  4041 continue
        !           197: c
        !           198: c     test 404 through test 406 test the call to subroutine fs053 which
        !           199: c     contains several arguments and several return statements.
        !           200: c
        !           201:       ivtnum = 404
        !           202: c
        !           203: c      ****  test 404  ****
        !           204: c
        !           205:       if (iczero) 34040, 4040, 34040
        !           206:  4040 continue
        !           207:       call fs053 (6,10,11,ivon04,1)
        !           208:       ivcomp = ivon04
        !           209:       go to 44040
        !           210: 34040 ivdele = ivdele + 1
        !           211:       write (i02,80003) ivtnum
        !           212:       if (iczero) 44040, 4051, 44040
        !           213: 44040 if (ivcomp - 6) 24040,14040,24040
        !           214: 14040 ivpass = ivpass + 1
        !           215:       write (i02,80001) ivtnum
        !           216:       go to 4051
        !           217: 24040 ivfail = ivfail + 1
        !           218:       ivcorr = 6
        !           219:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           220:  4051 continue
        !           221:       ivtnum = 405
        !           222: c
        !           223: c      ****  test 405  ****
        !           224: c
        !           225:       if (iczero) 34050, 4050, 34050
        !           226:  4050 continue
        !           227:       ivcn01 = 10
        !           228:       call fs053 (6,ivcn01,11,ivon04,2)
        !           229:       ivcomp = ivon04
        !           230:       go to 44050
        !           231: 34050 ivdele = ivdele + 1
        !           232:       write (i02,80003) ivtnum
        !           233:       if (iczero) 44050, 4061, 44050
        !           234: 44050 if (ivcomp - 16) 24050,14050,24050
        !           235: 14050 ivpass = ivpass + 1
        !           236:       write (i02,80001) ivtnum
        !           237:       go to 4061
        !           238: 24050 ivfail = ivfail + 1
        !           239:       ivcorr = 16
        !           240:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           241:  4061 continue
        !           242:       ivtnum = 406
        !           243: c
        !           244: c      ****  test 406  ****
        !           245: c
        !           246:       if (iczero) 34060, 4060, 34060
        !           247:  4060 continue
        !           248:       ivon01 = 6
        !           249:       ivon02 = 10
        !           250:       ivon03 = 11
        !           251:       ivon05 = 3
        !           252:       call fs053 (ivon01,ivon02,ivon03,ivon04,ivon05)
        !           253:       ivcomp = ivon04
        !           254:       go to 44060
        !           255: 34060 ivdele = ivdele + 1
        !           256:       write (i02,80003) ivtnum
        !           257:       if (iczero) 44060, 4071, 44060
        !           258: 44060 if (ivcomp - 27) 24060,14060,24060
        !           259: 14060 ivpass = ivpass + 1
        !           260:       write (i02,80001) ivtnum
        !           261:       go to 4071
        !           262: 24060 ivfail = ivfail + 1
        !           263:       ivcorr = 27
        !           264:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           265:  4071 continue
        !           266: c
        !           267: c     test 407 through 409 test the reference to function ff054 which
        !           268: c     contains several arguments and several return statements
        !           269: c
        !           270:       ivtnum = 407
        !           271: c
        !           272: c      ****  test 407  ****
        !           273: c
        !           274:       if (iczero) 34070, 4070, 34070
        !           275:  4070 continue
        !           276:       ivcomp = ff054 (300,1,21,1)
        !           277:       go to 44070
        !           278: 34070 ivdele = ivdele + 1
        !           279:       write (i02,80003) ivtnum
        !           280:       if (iczero) 44070, 4081, 44070
        !           281: 44070 if (ivcomp - 300) 24070,14070,24070
        !           282: 14070 ivpass = ivpass + 1
        !           283:       write (i02,80001) ivtnum
        !           284:       go to 4081
        !           285: 24070 ivfail = ivfail + 1
        !           286:       ivcorr = 300
        !           287:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           288:  4081 continue
        !           289:       ivtnum = 408
        !           290: c
        !           291: c      ****  test 408  ****
        !           292: c
        !           293:       if (iczero) 34080, 4080, 34080
        !           294:  4080 continue
        !           295:       ivon01 = 300
        !           296:       ivon04 = 2
        !           297:       ivcomp = ff054 (ivon01,77,5,ivon04)
        !           298:       go to 44080
        !           299: 34080 ivdele = ivdele + 1
        !           300:       write (i02,80003) ivtnum
        !           301:       if (iczero) 44080, 4091, 44080
        !           302: 44080 if (ivcomp - 377) 24080,14080,24080
        !           303: 14080 ivpass = ivpass + 1
        !           304:       write (i02,80001) ivtnum
        !           305:       go to 4091
        !           306: 24080 ivfail = ivfail + 1
        !           307:       ivcorr = 377
        !           308:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           309:  4091 continue
        !           310:       ivtnum = 409
        !           311: c
        !           312: c      ****  test 409  ****
        !           313: c
        !           314:       if (iczero) 34090, 4090, 34090
        !           315:  4090 continue
        !           316:       ivon01 = 71
        !           317:       ivon02 = 21
        !           318:       ivon03 = 17
        !           319:       ivon04 = 3
        !           320:       ivcomp = ff054 (ivon01,ivon02,ivon03,ivon04)
        !           321:       go to 44090
        !           322: 34090 ivdele = ivdele + 1
        !           323:       write (i02,80003) ivtnum
        !           324:       if (iczero) 44090, 4101, 44090
        !           325: 44090 if (ivcomp - 109) 24090,14090,24090
        !           326: 14090 ivpass = ivpass + 1
        !           327:       write (i02,80001) ivtnum
        !           328:       go to 4101
        !           329: 24090 ivfail = ivfail + 1
        !           330:       ivcorr = 109
        !           331:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           332:  4101 continue
        !           333: c
        !           334: c     test 410 through 429 test the call to subroutine fs055 which
        !           335: c     contains no arguments.  the parameters are passed through an
        !           336: c     integer array variable in unlabeled common.
        !           337: c
        !           338:       call fs055
        !           339:       do 20 i = 1,20
        !           340:       if (iczero) 34100, 4100, 34100
        !           341:  4100 continue
        !           342:       ivtnum = 409 + i
        !           343:       ivcomp = iacn11(i)
        !           344:       go to 44100
        !           345: 34100 ivdele = ivdele + 1
        !           346:       write (i02,80003) ivtnum
        !           347:       if (iczero) 44100, 4111, 44100
        !           348: 44100 if (ivcomp - i) 24100,14100,24100
        !           349: 14100 ivpass = ivpass + 1
        !           350:       write (i02,80001) ivtnum
        !           351:       go to 4111
        !           352: 24100 ivfail = ivfail + 1
        !           353:       ivcorr = i
        !           354:       write (i02,80004) ivtnum, ivcomp ,ivcorr
        !           355:  4111 continue
        !           356: 20    continue
        !           357: c
        !           358: c     write page footings and run summaries
        !           359: 99999 continue
        !           360:       write (i02,90002)
        !           361:       write (i02,90006)
        !           362:       write (i02,90002)
        !           363:       write (i02,90002)
        !           364:       write (i02,90007)
        !           365:       write (i02,90002)
        !           366:       write (i02,90008)  ivfail
        !           367:       write (i02,90009) ivpass
        !           368:       write (i02,90010) ivdele
        !           369: c
        !           370: c
        !           371: c     terminate routine execution
        !           372:       stop
        !           373: c
        !           374: c     format statements for page headers
        !           375: 90000 format (1h1)
        !           376: 90002 format (1h )
        !           377: 90001 format (1h ,10x,34hfortran compiler validation system)
        !           378: 90003 format (1h ,21x,11hversion 1.0)
        !           379: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
        !           380: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
        !           381: 90006 format (1h ,5x,46h----------------------------------------------)
        !           382: 90011 format (1h ,18x,17hsubset level test)
        !           383: c
        !           384: c     format statements for run summaries
        !           385: 90008 format (1h ,15x,i5,19h errors encountered)
        !           386: 90009 format (1h ,15x,i5,13h tests passed)
        !           387: 90010 format (1h ,15x,i5,14h tests deleted)
        !           388: c
        !           389: c     format statements for test results
        !           390: 80001 format (1h ,4x,i5,7x,4hpass)
        !           391: 80002 format (1h ,4x,i5,7x,4hfail)
        !           392: 80003 format (1h ,4x,i5,7x,7hdeleted)
        !           393: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
        !           394: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
        !           395: c
        !           396: 90007 format (1h ,20x,20hend of program fm050)
        !           397:       end

unix.superglobalmegacorp.com

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