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

1.1       root        1: c     comment section
                      2: c
                      3: c     fm060
                      4: c
                      5: c         this routine contains basic arithmetic if statement tests for
                      6: c     the format
                      7: c
                      8: c                   if (e) k1,k2,k3
                      9: c
                     10: c     where e is a simple real expression of the form
                     11: c
                     12: c            real variable
                     13: c            real variable - real constant
                     14: c            real variable + real constant
                     15: c
                     16: c     and k1, k2 and k3 are statement labels.
                     17: c
                     18: c         this routine also tests arithmetic assignment statements of
                     19: c     the form
                     20: c                  real variable = real constant
                     21: c                  real variable = real variable
                     22: c                  real variable = -real variable
                     23: c
                     24: c     the real constants and real variables contain both positive and
                     25: c     negative values.
                     26: c
                     27: c         a real datum is a processor approximation to the value of a
                     28: c     real number.  it may assume positive, negative and zero values.
                     29: c
                     30: c         a basic real constant is written as an integer part, a decimal
                     31: c     point, and a decimal fraction part in that order.  both the
                     32: c     integer part and the decimal part are strings of digits; either
                     33: c     one of these strings may be empty but not both.  the constant is
                     34: c     an approximation to the digit string interpreted as a decimal
                     35: c     numeral.
                     36: c
                     37: c         a decimal exponent is written as the letter e, followed by an
                     38: c     optionally signed integer constant.
                     39: c
                     40: c         a real constant is indicated by writing a basic real constant,
                     41: c     a basic real constant followed by a decimal exponent, or an
                     42: c     integer constant followed by a decimal exponent.
                     43: c
                     44: c      references
                     45: c        american national standard programming language fortran,
                     46: c              x3.9-1978
                     47: c
                     48: c        section 4.4, real type
                     49: c        section 4.4.1, real constant
                     50: c        section 6.1, arithmetic expressions
                     51: c        section 10.1, arithmetic assignment statement
                     52: c        section 11.4, arithmetic if statement
                     53: c
                     54: c      **********************************************************
                     55: c
                     56: c         a compiler validation system for the fortran language
                     57: c     based on specifications as defined in american national standard
                     58: c     programming language fortran x3.9-1978, has been developed by the
                     59: c     federal cobol compiler testing service.  the fortran compiler
                     60: c     validation system (fcvs) consists of audit routines, their related
                     61: c     data, and an executive system.  each audit routine is a fortran
                     62: c     program, subprogram or function which includes tests of specific
                     63: c     language elements and supporting procedures indicating the result
                     64: c     of executing these tests.
                     65: c
                     66: c         this particular program/subprogram/function contains features
                     67: c     found only in the subset as defined in x3.9-1978.
                     68: c
                     69: c         suggestions and comments should be forwarded to -
                     70: c
                     71: c                  department of the navy
                     72: c                  federal cobol compiler testing service
                     73: c                  washington, d.c.  20376
                     74: c
                     75: c      **********************************************************
                     76: c
                     77: c
                     78: c
                     79: c     initialization section
                     80: c
                     81: c     initialize constants
                     82: c      **************
                     83: c     i01 contains the logical unit number for the card reader.
                     84:       i01 = 5
                     85: c     i02 contains the logical unit number for the printer.
                     86:       i02 = 6
                     87: c     system environment section
                     88: c
                     89: cx010    this card is replaced by contents of fexec x-010 control card.
                     90: c     the cx010 card is for overriding the program default i01 = 5
                     91: c     (unit number for card reader).
                     92: cx011    this card is replaced by contents of fexec x-011 control card.
                     93: c     the cx011 card is for systems which require additional
                     94: c     fortran statements for files associated with cx010 above.
                     95: c
                     96: cx020    this card is replaced by contents of fexec x-020 control card.
                     97: c     the cx020 card is for overriding the program default i02 = 6
                     98: c     (unit number for printer).
                     99: cx021    this card is replaced by contents of fexec x-021 control card.
                    100: c     the cx021 card is for systems which require additional
                    101: c     fortran statements for files associated with cx020 above.
                    102: c
                    103:       ivpass=0
                    104:       ivfail=0
                    105:       ivdele=0
                    106:       iczero=0
                    107: c
                    108: c     write page headers
                    109:       write (i02,90000)
                    110:       write (i02,90001)
                    111:       write (i02,90002)
                    112:       write (i02, 90002)
                    113:       write (i02,90003)
                    114:       write (i02,90002)
                    115:       write (i02,90004)
                    116:       write (i02,90002)
                    117:       write (i02,90011)
                    118:       write (i02,90002)
                    119:       write (i02,90002)
                    120:       write (i02,90005)
                    121:       write (i02,90006)
                    122:       write (i02,90002)
                    123: c
                    124: c     test section
                    125: c
                    126: c         arithmetic if statement
                    127: c
                    128: c     test 1 through test 3 contain basic arithmetic if statement tests
                    129: c     with a real variable as arithmetic expression.
                    130: c
                    131:    11 continue
                    132:       ivtnum =   1
                    133: c
                    134: c      ****  test   1  ****
                    135: c         test 001  - less than zero branch expected
                    136: c
                    137:       if (iczero) 30010,   10, 30010
                    138:    10 continue
                    139:       rvcomp = 0.0
                    140:       rvon01 = -1.0
                    141:       if (rvon01)  12,40010, 40010
                    142:    12 rvcomp = rvon01
                    143:       go to 40010
                    144: 30010 ivdele = ivdele + 1
                    145:       write (i02,80003) ivtnum
                    146:       if (iczero) 40010,   21, 40010
                    147: 40010 if (rvcomp) 10010,20010,20010
                    148: 10010 ivpass = ivpass + 1
                    149:       write (i02,80001) ivtnum
                    150:       go to   21
                    151: 20010 ivfail = ivfail + 1
                    152:       rvcorr = -1.0
                    153:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    154:    21 continue
                    155:       ivtnum =   2
                    156: c
                    157: c      ****  test   2  ****
                    158: c         test 002  -  equal to zero branch expected
                    159: c
                    160:       if (iczero) 30020,   20, 30020
                    161:    20 continue
                    162:       rvcomp = 1.0
                    163:       rvon01 = 0.0
                    164:       if (rvon01) 40020,22,40020
                    165:    22 rvcomp = rvon01
                    166:       go to 40020
                    167: 30020 ivdele = ivdele + 1
                    168:       write (i02,80003) ivtnum
                    169:       if (iczero) 40020,   31, 40020
                    170: 40020 if (rvcomp)  20020,10020,20020
                    171: 10020 ivpass = ivpass + 1
                    172:       write (i02,80001) ivtnum
                    173:       go to   31
                    174: 20020 ivfail = ivfail + 1
                    175:       rvcorr = 0.0
                    176:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    177:    31 continue
                    178:       ivtnum =   3
                    179: c
                    180: c      ****  test   3  ****
                    181: c         test 003  -  greater than zero branch expected
                    182: c
                    183:       if (iczero) 30030,   30, 30030
                    184:    30 continue
                    185:       rvcomp = 0.0
                    186:       rvon01 = 1.0
                    187:       if (rvon01) 40030,40030,32
                    188:    32 rvcomp = rvon01
                    189:       go to 40030
                    190: 30030 ivdele = ivdele + 1
                    191:       write (i02,80003) ivtnum
                    192:       if (iczero) 40030,   41, 40030
                    193: 40030 if (rvcomp)  20030,20030,10030
                    194: 10030 ivpass = ivpass + 1
                    195:       write (i02,80001) ivtnum
                    196:       go to   41
                    197: 20030 ivfail = ivfail + 1
                    198:       rvcorr = 1.0
                    199:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    200:    41 continue
                    201:       ivtnum =   4
                    202: c
                    203: c      ****  test   4  ****
                    204: c     test 004  - basic if statements test
                    205: c           these if statements are used in real variable test
                    206: c           verification.  the arithmetic expressions are of the form
                    207: c                   real variable - real constant
                    208: c
                    209:       if (iczero) 30040,   40, 30040
                    210:    40 continue
                    211:       rvcomp = 4.0
                    212:       rvon01 = 1.0
                    213:       if (rvon01 - .99995) 40040,42,42
                    214:    42 if (rvon01 - 1.0005) 43,43,40040
                    215:    43 rvcomp = 0.0
                    216:       go to 40040
                    217: 30040 ivdele = ivdele + 1
                    218:       write (i02,80003) ivtnum
                    219:       if (iczero) 40040,   51, 40040
                    220: 40040 if (rvcomp) 20040,10040,20040
                    221: 10040 ivpass = ivpass + 1
                    222:       write (i02,80001) ivtnum
                    223:       go to   51
                    224: 20040 ivfail = ivfail + 1
                    225:       rvcorr = 0.0
                    226:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    227:    51 continue
                    228:       ivtnum =   5
                    229: c
                    230: c      ****  test   5  ****
                    231: c     test 005  -  basic if statements test
                    232: c           these if statements are used in real variable test
                    233: c           verification.  the arithmetic expressions are of the form
                    234: c                   real variable + real constant
                    235: c
                    236:       if (iczero) 30050,   50, 30050
                    237:    50 continue
                    238:       rvcomp = -1.0
                    239:       rvon01 = -1.0
                    240:       if (rvon01 + 1.0005) 40050,52,52
                    241:    52 if (rvon01 + .99995) 53,53,40050
                    242:    53 rvcomp = 0.0
                    243:       go to 40050
                    244: 30050 ivdele = ivdele + 1
                    245:       write (i02,80003) ivtnum
                    246:       if (iczero) 40050,   61, 40050
                    247: 40050 if (rvcomp) 20050,10050,20050
                    248: 10050 ivpass = ivpass + 1
                    249:       write (i02,80001) ivtnum
                    250:       go to   61
                    251: 20050 ivfail = ivfail + 1
                    252:       rvcorr = 0.0
                    253:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    254: c
                    255: c        arithmetic assignment statement
                    256: c
                    257: c
                    258: c     test 006 through test 025 contain arithmetic assignment
                    259: c     statements of the form
                    260: c              real variable = real constant
                    261: c
                    262: c          the three types of real constants are tested with positive
                    263: c     and negative values for the constants, and positive and negative
                    264: c     exponents.
                    265: c
                    266: c     test 006 through test 011 - constant is basic real constant
                    267: c
                    268:    61 continue
                    269:       ivtnum =   6
                    270: c
                    271: c      ****  test   6  ****
                    272: c
                    273:       if (iczero) 30060,   60, 30060
                    274:    60 continue
                    275:       rvcomp = 2.0
                    276:       go to 40060
                    277: 30060 ivdele = ivdele + 1
                    278:       write (i02,80003) ivtnum
                    279:       if (iczero) 40060,   71, 40060
                    280: 40060 if (rvcomp - 1.9995) 20060,10060,40061
                    281: 40061 if (rvcomp - 2.0005) 10060,10060,20060
                    282: 10060 ivpass = ivpass + 1
                    283:       write (i02,80001) ivtnum
                    284:       go to   71
                    285: 20060 ivfail = ivfail + 1
                    286:       rvcorr = 2.0
                    287:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    288:    71 continue
                    289:       ivtnum =   7
                    290: c
                    291: c      ****  test   7  ****
                    292: c
                    293:       if (iczero) 30070,   70, 30070
                    294:    70 continue
                    295:       rvcomp = 44.5
                    296:       go to 40070
                    297: 30070 ivdele = ivdele + 1
                    298:       write (i02,80003) ivtnum
                    299:       if (iczero) 40070,   81, 40070
                    300: 40070 if (rvcomp - 44.495) 20070,10070,40071
                    301: 40071 if (rvcomp - 45.505) 10070,10070,20070
                    302: 10070 ivpass = ivpass + 1
                    303:       write (i02,80001) ivtnum
                    304:       go to   81
                    305: 20070 ivfail = ivfail + 1
                    306:       rvcorr = 44.5
                    307:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    308:    81 continue
                    309:       ivtnum =   8
                    310: c
                    311: c      ****  test   8  ****
                    312: c
                    313:       if (iczero) 30080,   80, 30080
                    314:    80 continue
                    315:       rvcomp = -2.0
                    316:       go to 40080
                    317: 30080 ivdele = ivdele + 1
                    318:       write (i02,80003) ivtnum
                    319:       if (iczero) 40080,   91, 40080
                    320: 40080 if (rvcomp + 2.0005) 20080,10080,40081
                    321: 40081 if (rvcomp + 1.9995) 10080,10080,20080
                    322: 10080 ivpass = ivpass + 1
                    323:       write (i02,80001) ivtnum
                    324:       go to   91
                    325: 20080 ivfail = ivfail + 1
                    326:       rvcorr = -2.0
                    327:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    328:    91 continue
                    329:       ivtnum =   9
                    330: c
                    331: c      ****  test   9  ****
                    332: c
                    333:       if (iczero) 30090,   90, 30090
                    334:    90 continue
                    335:       rvcomp = 65001.
                    336:       go to 40090
                    337: 30090 ivdele = ivdele + 1
                    338:       write (i02,80003) ivtnum
                    339:       if (iczero) 40090,  101, 40090
                    340: 40090 if (rvcomp - 64996.) 20090,10090,40091
                    341: 40091 if (rvcomp - 65006.) 10090,10090,20090
                    342: 10090 ivpass = ivpass + 1
                    343:       write (i02,80001) ivtnum
                    344:       go to  101
                    345: 20090 ivfail = ivfail + 1
                    346:       rvcorr = 65001.
                    347:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    348:   101 continue
                    349:       ivtnum =  10
                    350: c
                    351: c      ****  test  10  ****
                    352: c
                    353:       if (iczero) 30100,  100, 30100
                    354:   100 continue
                    355:       rvcomp = .65001
                    356:       go to 40100
                    357: 30100 ivdele = ivdele + 1
                    358:       write (i02,80003) ivtnum
                    359:       if (iczero) 40100,  111, 40100
                    360: 40100 if (rvcomp - .64996) 20100,10100,40101
                    361: 40101 if (rvcomp - .65006) 10100,10100,20100
                    362: 10100 ivpass = ivpass + 1
                    363:       write (i02,80001) ivtnum
                    364:       go to  111
                    365: 20100 ivfail = ivfail + 1
                    366:       rvcorr = .65001
                    367:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    368:   111 continue
                    369:       ivtnum =  11
                    370: c
                    371: c      ****  test  11  ****
                    372: c
                    373:       if (iczero) 30110,  110, 30110
                    374:   110 continue
                    375:       rvcomp = -.33333
                    376:       go to 40110
                    377: 30110 ivdele = ivdele + 1
                    378:       write (i02,80003) ivtnum
                    379:       if (iczero) 40110,  121, 40110
                    380: 40110 if (rvcomp + .33338) 20110,10110,40111
                    381: 40111 if (rvcomp + .33328) 10110,10110,20110
                    382: 10110 ivpass = ivpass + 1
                    383:       write (i02,80001) ivtnum
                    384:       go to  121
                    385: 20110 ivfail = ivfail + 1
                    386:       rvcorr = -.33333
                    387:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    388: c
                    389: c     test 012 through test 19 - real constant is basic real constant
                    390: c                              - followed by decimal exponent
                    391: c
                    392:   121 continue
                    393:       ivtnum =  12
                    394: c
                    395: c      ****  test  12  ****
                    396: c
                    397:       if (iczero) 30120,  120, 30120
                    398:   120 continue
                    399:       rvcomp = .2e+1
                    400:       go to 40120
                    401: 30120 ivdele = ivdele + 1
                    402:       write (i02,80003) ivtnum
                    403:       if (iczero) 40120,  131, 40120
                    404: 40120 if (rvcomp - 1.9995) 20120,10120,40121
                    405: 40121 if (rvcomp - 2.0005) 10120,10120,20120
                    406: 10120 ivpass = ivpass + 1
                    407:       write (i02,80001) ivtnum
                    408:       go to  131
                    409: 20120 ivfail = ivfail + 1
                    410:       rvcorr = 2.0
                    411:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    412:   131 continue
                    413:       ivtnum =  13
                    414: c
                    415: c      ****  test  13  ****
                    416: c
                    417:       if (iczero) 30130,  130, 30130
                    418:   130 continue
                    419:       rvcomp = 2.0e+0
                    420:       go to 40130
                    421: 30130 ivdele = ivdele + 1
                    422:       write (i02,80003) ivtnum
                    423:       if (iczero) 40130,  141, 40130
                    424: 40130 if (rvcomp - 1.9995) 20130,10130,40131
                    425: 40131 if (rvcomp - 2.0005) 10130,10130,20130
                    426: 10130 ivpass = ivpass + 1
                    427:       write (i02,80001) ivtnum
                    428:       go to  141
                    429: 20130 ivfail = ivfail + 1
                    430:       rvcorr = 2.0
                    431:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    432:   141 continue
                    433:       ivtnum =  14
                    434: c
                    435: c      ****  test  14  ****
                    436: c
                    437:       if (iczero) 30140,  140, 30140
                    438:   140 continue
                    439:       rvcomp = 445.0e-01
                    440:       go to 40140
                    441: 30140 ivdele = ivdele + 1
                    442:       write (i02,80003) ivtnum
                    443:       if (iczero) 40140,  151, 40140
                    444: 40140 if (rvcomp - 44.495) 20140,10140,40141
                    445: 40141 if (rvcomp - 44.505) 10140,10140,20140
                    446: 10140 ivpass = ivpass + 1
                    447:       write (i02,80001) ivtnum
                    448:       go to  151
                    449: 20140 ivfail = ivfail + 1
                    450:       rvcorr = 44.5
                    451:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    452:   151 continue
                    453:       ivtnum =  15
                    454: c
                    455: c      ****  test  15  ****
                    456: c
                    457:       if (iczero) 30150,  150, 30150
                    458:   150 continue
                    459:       rvcomp = 4.450e1
                    460:       go to 40150
                    461: 30150 ivdele = ivdele + 1
                    462:       write (i02,80003) ivtnum
                    463:       if (iczero) 40150,  161, 40150
                    464: 40150 if (rvcomp - 44.495) 20150,10150,40151
                    465: 40151 if (rvcomp - 44.505) 10150,10150,20150
                    466: 10150 ivpass = ivpass + 1
                    467:       write (i02,80001) ivtnum
                    468:       go to  161
                    469: 20150 ivfail = ivfail + 1
                    470:       rvcorr = 44.5
                    471:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    472:   161 continue
                    473:       ivtnum =  16
                    474: c
                    475: c      ****  test  16  ****
                    476: c
                    477:       if (iczero) 30160,  160, 30160
                    478:   160 continue
                    479:       rvcomp = 2.e+15
                    480:       go to 40160
                    481: 30160 ivdele = ivdele + 1
                    482:       write (i02,80003) ivtnum
                    483:       if (iczero) 40160,  171, 40160
                    484: 40160 if (rvcomp - 1.9995e+15) 20160,10160,40161
                    485: 40161 if (rvcomp - 2.0005e+15) 10160,10160,20160
                    486: 10160 ivpass = ivpass + 1
                    487:       write (i02,80001) ivtnum
                    488:       go to  171
                    489: 20160 ivfail = ivfail + 1
                    490:       rvcorr = 2.0e+15
                    491:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    492:   171 continue
                    493:       ivtnum =  17
                    494: c
                    495: c      ****  test  17  ****
                    496: c
                    497:       if (iczero) 30170,  170, 30170
                    498:   170 continue
                    499:       rvcomp = 44.5e-15
                    500:       go to 40170
                    501: 30170 ivdele = ivdele + 1
                    502:       write (i02,80003) ivtnum
                    503:       if (iczero) 40170,  181, 40170
                    504: 40170 if (rvcomp - 44.495e-15) 20170,10170,40171
                    505: 40171 if (rvcomp - 44.505e-15) 10170,10170,20170
                    506: 10170 ivpass = ivpass + 1
                    507:       write (i02,80001) ivtnum
                    508:       go to  181
                    509: 20170 ivfail = ivfail + 1
                    510:       rvcorr = 44.5e-15
                    511:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    512:   181 continue
                    513:       ivtnum =  18
                    514: c
                    515: c      ****  test  18  ****
                    516: c
                    517:       if (iczero) 30180,  180, 30180
                    518:   180 continue
                    519:       rvcomp = -4.45e0
                    520:       go to 40180
                    521: 30180 ivdele = ivdele + 1
                    522:       write (i02,80003) ivtnum
                    523:       if (iczero) 40180,  191, 40180
                    524: 40180 if (rvcomp + 4.4505) 20180,10180,40181
                    525: 40181 if (rvcomp + 4.4495) 10180,10180,20180
                    526: 10180 ivpass = ivpass + 1
                    527:       write (i02,80001) ivtnum
                    528:       go to  191
                    529: 20180 ivfail = ivfail + 1
                    530:       rvcorr = -4.45
                    531:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    532:   191 continue
                    533:       ivtnum =  19
                    534: c
                    535: c      ****  test  19  ****
                    536: c
                    537:       if (iczero) 30190,  190, 30190
                    538:   190 continue
                    539:       rvcomp = -6511.8e-0
                    540:       go to 40190
                    541: 30190 ivdele = ivdele + 1
                    542:       write (i02,80003) ivtnum
                    543:       if (iczero) 40190,  201, 40190
                    544: 40190 if (rvcomp + 6512.3) 20190,10190,40191
                    545: 40191 if (rvcomp + 6511.3) 10190,10190,20190
                    546: 10190 ivpass = ivpass + 1
                    547:       write (i02,80001) ivtnum
                    548:       go to  201
                    549: 20190 ivfail = ivfail + 1
                    550:       rvcorr = -6511.8
                    551:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    552: c
                    553: c     test 020 through test 025 - integer constant followed
                    554: c                               - by a decimal exponent
                    555: c
                    556:   201 continue
                    557:       ivtnum =  20
                    558: c
                    559: c      ****  test  20  ****
                    560: c
                    561:       if (iczero) 30200,  200, 30200
                    562:   200 continue
                    563:       rvcomp = 2e+1
                    564:       go to 40200
                    565: 30200 ivdele = ivdele + 1
                    566:       write (i02,80003) ivtnum
                    567:       if (iczero) 40200,  211, 40200
                    568: 40200 if (rvcomp - 19.995) 20200,10200,40201
                    569: 40201 if (rvcomp - 20.005) 10200,10200,20200
                    570: 10200 ivpass = ivpass + 1
                    571:       write (i02,80001) ivtnum
                    572:       go to  211
                    573: 20200 ivfail = ivfail + 1
                    574:       rvcorr = 20.0
                    575:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    576:   211 continue
                    577:       ivtnum =  21
                    578: c
                    579: c      ****  test  21  ****
                    580: c
                    581:       if (iczero) 30210,  210, 30210
                    582:   210 continue
                    583:       rvcomp = 445e-02
                    584:       go to 40210
                    585: 30210 ivdele = ivdele + 1
                    586:       write (i02,80003) ivtnum
                    587:       if (iczero) 40210,  221, 40210
                    588: 40210 if (rvcomp - 4.4495) 20210,10210,40211
                    589: 40211 if (rvcomp - 4.4505) 10210,10210,20210
                    590: 10210 ivpass = ivpass + 1
                    591:       write (i02,80001) ivtnum
                    592:       go to  221
                    593: 20210 ivfail = ivfail + 1
                    594:       rvcorr = 4.45
                    595:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    596:   221 continue
                    597:       ivtnum =  22
                    598: c
                    599: c      ****  test  22  ****
                    600: c
                    601:       if (iczero) 30220,  220, 30220
                    602:   220 continue
                    603:       rvcomp = 7e3
                    604:       go to 40220
                    605: 30220 ivdele = ivdele + 1
                    606:       write (i02,80003) ivtnum
                    607:       if (iczero) 40220,  231, 40220
                    608: 40220 if (rvcomp - 6999.0) 20220,10220,40221
                    609: 40221 if (rvcomp - 7001.0) 10220,10220,20220
                    610: 10220 ivpass = ivpass + 1
                    611:       write (i02,80001) ivtnum
                    612:       go to  231
                    613: 20220 ivfail = ivfail + 1
                    614:       rvcorr = 7000.0
                    615:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    616:   231 continue
                    617:       ivtnum =  23
                    618: c
                    619: c      ****  test  23  ****
                    620: c
                    621:       if (iczero) 30230,  230, 30230
                    622:   230 continue
                    623:       rvcomp = 214 e 0
                    624:       go to 40230
                    625: 30230 ivdele = ivdele + 1
                    626:       write (i02,80003) ivtnum
                    627:       if (iczero) 40230,  241, 40230
                    628: 40230 if (rvcomp - 213.95) 20230,10230,40231
                    629: 40231 if (rvcomp - 214.05) 10230,10230,20230
                    630: 10230 ivpass = ivpass + 1
                    631:       write (i02,80001) ivtnum
                    632:       go to  241
                    633: 20230 ivfail = ivfail + 1
                    634:       rvcorr = 214.0
                    635:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    636:   241 continue
                    637:       ivtnum =  24
                    638: c
                    639: c      ****  test  24  ****
                    640: c
                    641:       if (iczero) 30240,  240, 30240
                    642:   240 continue
                    643:       rvcomp = -3276e+6
                    644:       go to 40240
                    645: 30240 ivdele = ivdele + 1
                    646:       write (i02,80003) ivtnum
                    647:       if (iczero) 40240,  251, 40240
                    648: 40240 if (rvcomp + .32765e+10) 20240,10240,40241
                    649: 40241 if (rvcomp + .32755e+10) 10240,10240,20240
                    650: 10240 ivpass = ivpass + 1
                    651:       write (i02,80001) ivtnum
                    652:       go to  251
                    653: 20240 ivfail = ivfail + 1
                    654:       rvcorr = -3276e+6
                    655:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    656:   251 continue
                    657:       ivtnum =  25
                    658: c
                    659: c      ****  test  25  ****
                    660: c
                    661:       if (iczero) 30250,  250, 30250
                    662:   250 continue
                    663:       rvcomp = -7e3
                    664:       go to 40250
                    665: 30250 ivdele = ivdele + 1
                    666:       write (i02,80003) ivtnum
                    667:       if (iczero) 40250,  261, 40250
                    668: 40250 if (rvcomp + 7001.)  20250,10250,40251
                    669: 40251 if (rvcomp + 6999.) 10250,10250,20250
                    670: 10250 ivpass = ivpass + 1
                    671:       write (i02,80001) ivtnum
                    672:       go to  261
                    673: 20250 ivfail = ivfail + 1
                    674:       rvcorr = -7000.0
                    675:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    676: c
                    677: c     test 026 through test 028 contain arithmetic assignment statement
                    678: c     of the form            real variable = real variable
                    679: c
                    680:   261 continue
                    681:       ivtnum =  26
                    682: c
                    683: c      ****  test  26  ****
                    684: c
                    685:       if (iczero) 30260,  260, 30260
                    686:   260 continue
                    687:       rvon01 = .2e+1
                    688:       rvcomp = rvon01
                    689:       go to 40260
                    690: 30260 ivdele = ivdele + 1
                    691:       write (i02,80003) ivtnum
                    692:       if (iczero) 40260,  271, 40260
                    693: 40260 if (rvcomp - 1.9995) 20260,10260,40261
                    694: 40261 if (rvcomp - 2.0005) 10260,10260,20260
                    695: 10260 ivpass = ivpass + 1
                    696:       write (i02,80001) ivtnum
                    697:       go to  271
                    698: 20260 ivfail = ivfail + 1
                    699:       rvcorr = 20.0
                    700:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    701:   271 continue
                    702:       ivtnum =  27
                    703: c
                    704: c      ****  test  27  ****
                    705: c
                    706:       if (iczero) 30270,  270, 30270
                    707:   270 continue
                    708:       rvon01 = -445.e-01
                    709:       rvcomp = rvon01
                    710:       go to 40270
                    711: 30270 ivdele = ivdele + 1
                    712:       write (i02,80003) ivtnum
                    713:       if (iczero) 40270,  281, 40270
                    714: 40270 if (rvcomp + 44.505) 20270,10270,40271
                    715: 40271 if (rvcomp + 44.495) 10270,10270,20270
                    716: 10270 ivpass = ivpass + 1
                    717:       write (i02,80001) ivtnum
                    718:       go to  281
                    719: 20270 ivfail = ivfail + 1
                    720:       rvcorr = -44.5
                    721:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    722:   281 continue
                    723:       ivtnum =  28
                    724: c
                    725: c      ****  test  28  ****
                    726: c
                    727:       if (iczero) 30280,  280, 30280
                    728:   280 continue
                    729:       rvon01 = 7e3
                    730:       rvcomp = rvon01
                    731:       go to 40280
                    732: 30280 ivdele = ivdele + 1
                    733:       write (i02,80003) ivtnum
                    734:       if (iczero) 40280,  291, 40280
                    735: 40280 if (rvcomp - 6999.0) 20280,10280,40281
                    736: 40281 if (rvcomp-7001.0) 10280,10280,20280
                    737: 10280 ivpass = ivpass + 1
                    738:       write (i02,80001) ivtnum
                    739:       go to  291
                    740: 20280 ivfail = ivfail + 1
                    741:       rvcorr = 7000.0
                    742: c
                    743: c     test 029 through test 031 contain arithmetic assignment statement
                    744: c     of the form            real variable = - real variable
                    745: c
                    746:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    747:   291 continue
                    748:       ivtnum =  29
                    749: c
                    750: c      ****  test  29  ****
                    751: c
                    752:       if (iczero) 30290,  290, 30290
                    753:   290 continue
                    754:       rvon01 = .2e+1
                    755:       rvcomp = -rvon01
                    756:       go to 40290
                    757: 30290 ivdele = ivdele + 1
                    758:       write (i02,80003) ivtnum
                    759:       if (iczero) 40290,  301, 40290
                    760: 40290 if (rvcomp + 2.0005) 20290,10290,40291
                    761: 40291 if (rvcomp + 1.9995) 10290,10290,20290
                    762: 10290 ivpass = ivpass + 1
                    763:       write (i02,80001) ivtnum
                    764:       go to  301
                    765: 20290 ivfail = ivfail + 1
                    766:       rvcorr = -2.0
                    767:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    768:   301 continue
                    769:       ivtnum =  30
                    770: c
                    771: c      ****  test  30  ****
                    772: c
                    773:       if (iczero) 30300,  300, 30300
                    774:   300 continue
                    775:       rvon01 = -445.e-01
                    776:       rvcomp = -rvon01
                    777:       go to 40300
                    778: 30300 ivdele = ivdele + 1
                    779:       write (i02,80003) ivtnum
                    780:       if (iczero) 40300,  311, 40300
                    781: 40300 if (rvcomp - 44.495) 20300,10300,40301
                    782: 40301 if (rvcomp - 44.505) 10300,10300,20300
                    783: 10300 ivpass = ivpass + 1
                    784:       write (i02,80001) ivtnum
                    785:       go to  311
                    786: 20300 ivfail = ivfail + 1
                    787:       rvcorr = 44.5
                    788:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    789:   311 continue
                    790:       ivtnum =  31
                    791: c
                    792: c      ****  test  31  ****
                    793: c
                    794:       if (iczero) 30310,  310, 30310
                    795:   310 continue
                    796:       rvon01 = -.44559e1
                    797:       rvcomp = -rvon01
                    798:       go to 40310
                    799: 30310 ivdele = ivdele + 1
                    800:       write (i02,80003) ivtnum
                    801:       if (iczero) 40310,  321, 40310
                    802: 40310 if (rvcomp - 4.4554) 20310,10310,40311
                    803: 40311 if (rvcomp - 4.4564) 10310,10310,20310
                    804: 10310 ivpass = ivpass + 1
                    805:       write (i02,80001) ivtnum
                    806:       go to  321
                    807: 20310 ivfail = ivfail + 1
                    808:       rvcorr = 4.4559
                    809:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    810: c      ****    end of tests    ****
                    811:   321 continue
                    812: c
                    813: c     write page footings and run summaries
                    814: 99999 continue
                    815:       write (i02,90002)
                    816:       write (i02,90006)
                    817:       write (i02,90002)
                    818:       write (i02,90002)
                    819:       write (i02,90007)
                    820:       write (i02,90002)
                    821:       write (i02,90008)  ivfail
                    822:       write (i02,90009) ivpass
                    823:       write (i02,90010) ivdele
                    824: c
                    825: c
                    826: c     terminate routine execution
                    827:       stop
                    828: c
                    829: c     format statements for page headers
                    830: 90000 format (1h1)
                    831: 90002 format (1h )
                    832: 90001 format (1h ,10x,34hfortran compiler validation system)
                    833: 90003 format (1h ,21x,11hversion 1.0)
                    834: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
                    835: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
                    836: 90006 format (1h ,5x,46h----------------------------------------------)
                    837: 90011 format (1h ,18x,17hsubset level test)
                    838: c
                    839: c     format statements for run summaries
                    840: 90008 format (1h ,15x,i5,19h errors encountered)
                    841: 90009 format (1h ,15x,i5,13h tests passed)
                    842: 90010 format (1h ,15x,i5,14h tests deleted)
                    843: c
                    844: c     format statements for test results
                    845: 80001 format (1h ,4x,i5,7x,4hpass)
                    846: 80002 format (1h ,4x,i5,7x,4hfail)
                    847: 80003 format (1h ,4x,i5,7x,7hdeleted)
                    848: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
                    849: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
                    850: c
                    851: 90007 format (1h ,20x,20hend of program fm060)
                    852:       end

unix.superglobalmegacorp.com

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