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

1.1       root        1: c
                      2: c     comment section.
                      3: c
                      4: c     fm021
                      5: c
                      6: c           this routine tests the fortran  data initialization
                      7: c     statement.  integer, real, and logical data types are tested
                      8: c     using unsigned constants, signed constants, and logical
                      9: c     constants..   integer, real, logical, and mixed type arrays
                     10: c     are also tested.
                     11: c
                     12: c      references
                     13: c        american national standard programming language fortran,
                     14: c              x3.9-1978
                     15: c
                     16: c        section 4.1.3, data type preparation
                     17: c        section 4.4.3, real constant
                     18: c        section 9, data statement
                     19: c
                     20:       integer ratn11(3)
                     21:       logical lctn01, lctn02, latn11(3), ladn11
                     22:       real iatn11(3)
                     23:       dimension iadn11(3), radn11(4), ladn11(6), radn13(4), iadn12(4)
                     24:       dimension iadn13(4)
                     25: c
                     26:       data icon01/0/
                     27:       data icon02/3/
                     28:       data icon03/76/
                     29:       data icon04/587/
                     30:       data icon05/9999/
                     31:       data icon06/32767/
                     32:       data icon07/-0/
                     33:       data icon08/-32766/
                     34:       data icon09/00003/
                     35:       data icon10/ 3 2 7 6 7 /
                     36:       data lctn01/.true./
                     37:       data lctn02/.false./
                     38:       data rcon01/0./
                     39:       data rcon02 /.0/
                     40:       data rcon03/0.0/
                     41:       data rcon04/32767./
                     42:       data rcon05/-32766./
                     43:       data rcon06/-000587./
                     44:       data rcon07/99.99/
                     45:       data rcon08/ -03. 2  7  6   6/
                     46:       data iadn11(1)/3/, iadn11(3)/-587/, iadn11(2)/32767/
                     47:       data iadn12/4*9999/
                     48:       data iadn13/0,2*-32766,-587/
                     49:       data ladn11/.true., .false., 2*.true., 2*.false./
                     50:       data radn11/32767., -32.766, 2*587./
                     51:       data latn11/.true., 2*.false./, iatn11/2*32767., -32766./
                     52:       data ratn11/3*-32766/
                     53:       data radn13/32.767e03, -3.2766e-01, .587e+03, 9e1/
                     54: c
                     55: c
                     56: c      **********************************************************
                     57: c
                     58: c         a compiler validation system for the fortran language
                     59: c     based on specifications as defined in american national standard
                     60: c     programming language fortran x3.9-1978, has been developed by the
                     61: c     federal cobol compiler testing service.  the fortran compiler
                     62: c     validation system (fcvs) consists of audit routines, their related
                     63: c     data, and an executive system.  each audit routine is a fortran
                     64: c     program, subprogram or function which includes tests of specific
                     65: c     language elements and supporting procedures indicating the result
                     66: c     of executing these tests.
                     67: c
                     68: c         this particular program/subprogram/function contains features
                     69: c     found only in the subset as defined in x3.9-1978.
                     70: c
                     71: c         suggestions and comments should be forwarded to -
                     72: c
                     73: c                  department of the navy
                     74: c                  federal cobol compiler testing service
                     75: c                  washington, d.c.  20376
                     76: c
                     77: c      **********************************************************
                     78: c
                     79: c
                     80: c
                     81: c     initialization section
                     82: c
                     83: c     initialize constants
                     84: c      **************
                     85: c     i01 contains the logical unit number for the card reader.
                     86:       i01 = 5
                     87: c     i02 contains the logical unit number for the printer.
                     88:       i02 = 6
                     89: c     system environment section
                     90: c
                     91: cx010    this card is replaced by contents of fexec x-010 control card.
                     92: c     the cx010 card is for overriding the program default i01 = 5
                     93: c     (unit number for card reader).
                     94: cx011    this card is replaced by contents of fexec x-011 control card.
                     95: c     the cx011 card is for systems which require additional
                     96: c     fortran statements for files associated with cx010 above.
                     97: c
                     98: cx020    this card is replaced by contents of fexec x-020 control card.
                     99: c     the cx020 card is for overriding the program default i02 = 6
                    100: c     (unit number for printer).
                    101: cx021    this card is replaced by contents of fexec x-021 control card.
                    102: c     the cx021 card is for systems which require additional
                    103: c     fortran statements for files associated with cx020 above.
                    104: c
                    105:       ivpass=0
                    106:       ivfail=0
                    107:       ivdele=0
                    108:       iczero=0
                    109: c
                    110: c     write page headers
                    111:       write (i02,90000)
                    112:       write (i02,90001)
                    113:       write (i02,90002)
                    114:       write (i02, 90002)
                    115:       write (i02,90003)
                    116:       write (i02,90002)
                    117:       write (i02,90004)
                    118:       write (i02,90002)
                    119:       write (i02,90011)
                    120:       write (i02,90002)
                    121:       write (i02,90002)
                    122:       write (i02,90005)
                    123:       write (i02,90006)
                    124:       write (i02,90002)
                    125:       ivtnum = 565
                    126: c
                    127: c      ****  test 565  ****
                    128: c     test 565  -  test of an integer variable set to the integer
                    129: c         constant zero.
                    130: c
                    131: c
                    132:       if (iczero) 35650, 5650, 35650
                    133:  5650 continue
                    134:       go to 45650
                    135: 35650 ivdele = ivdele + 1
                    136:       write (i02,80003) ivtnum
                    137:       if (iczero) 45650, 5661, 45650
                    138: 45650 if ( icon01 - 0 )  25650, 15650, 25650
                    139: 15650 ivpass = ivpass + 1
                    140:       write (i02,80001) ivtnum
                    141:       go to 5661
                    142: 25650 ivfail = ivfail + 1
                    143:       ivcomp = icon01
                    144:       ivcorr = 0
                    145:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    146:  5661 continue
                    147:       ivtnum = 566
                    148: c
                    149: c      ****  test 566  ****
                    150: c     test 566  -  test of an integer variable set to the integer
                    151: c         constant 3.
                    152: c
                    153: c
                    154:       if (iczero) 35660, 5660, 35660
                    155:  5660 continue
                    156:       go to 45660
                    157: 35660 ivdele = ivdele + 1
                    158:       write (i02,80003) ivtnum
                    159:       if (iczero) 45660, 5671, 45660
                    160: 45660 if ( icon02 - 3 )  25660, 15660, 25660
                    161: 15660 ivpass = ivpass + 1
                    162:       write (i02,80001) ivtnum
                    163:       go to 5671
                    164: 25660 ivfail = ivfail + 1
                    165:       ivcomp = icon02
                    166:       ivcorr = 3
                    167:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    168:  5671 continue
                    169:       ivtnum = 567
                    170: c
                    171: c      ****  test 567  ****
                    172: c     test 567  -  test of an integer variable set to the integer
                    173: c         constant 76.
                    174: c
                    175: c
                    176:       if (iczero) 35670, 5670, 35670
                    177:  5670 continue
                    178:       go to 45670
                    179: 35670 ivdele = ivdele + 1
                    180:       write (i02,80003) ivtnum
                    181:       if (iczero) 45670, 5681, 45670
                    182: 45670 if ( icon03 - 76 )  25670, 15670, 25670
                    183: 15670 ivpass = ivpass + 1
                    184:       write (i02,80001) ivtnum
                    185:       go to 5681
                    186: 25670 ivfail = ivfail + 1
                    187:       ivcomp = icon03
                    188:       ivcorr = 76
                    189:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    190:  5681 continue
                    191:       ivtnum = 568
                    192: c
                    193: c      ****  test 568  ****
                    194: c     test 568  -  test of an integer variable set to the integer
                    195: c         constant  587.
                    196: c
                    197: c
                    198:       if (iczero) 35680, 5680, 35680
                    199:  5680 continue
                    200:       go to 45680
                    201: 35680 ivdele = ivdele + 1
                    202:       write (i02,80003) ivtnum
                    203:       if (iczero) 45680, 5691, 45680
                    204: 45680 if ( icon04 - 587 )  25680, 15680, 25680
                    205: 15680 ivpass = ivpass + 1
                    206:       write (i02,80001) ivtnum
                    207:       go to 5691
                    208: 25680 ivfail = ivfail + 1
                    209:       ivcomp = icon04
                    210:       ivcorr = 587
                    211:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    212:  5691 continue
                    213:       ivtnum = 569
                    214: c
                    215: c      ****  test 569  ****
                    216: c     test 569  -  test of an integer variable set to the integer
                    217: c         constant  9999.
                    218: c
                    219: c
                    220:       if (iczero) 35690, 5690, 35690
                    221:  5690 continue
                    222:       go to 45690
                    223: 35690 ivdele = ivdele + 1
                    224:       write (i02,80003) ivtnum
                    225:       if (iczero) 45690, 5701, 45690
                    226: 45690 if ( icon05 - 9999 )  25690, 15690, 25690
                    227: 15690 ivpass = ivpass + 1
                    228:       write (i02,80001) ivtnum
                    229:       go to 5701
                    230: 25690 ivfail = ivfail + 1
                    231:       ivcomp = icon05
                    232:       ivcorr = 9999
                    233:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    234:  5701 continue
                    235:       ivtnum = 570
                    236: c
                    237: c      ****  test 570  ****
                    238: c     test 570  -  test of an integer variable set to the integer
                    239: c         constant  32767.
                    240: c
                    241: c
                    242:       if (iczero) 35700, 5700, 35700
                    243:  5700 continue
                    244:       go to 45700
                    245: 35700 ivdele = ivdele + 1
                    246:       write (i02,80003) ivtnum
                    247:       if (iczero) 45700, 5711, 45700
                    248: 45700 if ( icon06 - 32767 )  25700, 15700, 25700
                    249: 15700 ivpass = ivpass + 1
                    250:       write (i02,80001) ivtnum
                    251:       go to 5711
                    252: 25700 ivfail = ivfail + 1
                    253:       ivcomp = icon06
                    254:       ivcorr = 32767
                    255:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    256:  5711 continue
                    257:       ivtnum = 571
                    258: c
                    259: c      ****  test 571  ****
                    260: c     test 571  -  test of an integer variable set to the integer
                    261: c         constant -0.  note that signed zero and unsigned zero
                    262: c         should be equal for any integer operation.
                    263: c
                    264: c
                    265:       if (iczero) 35710, 5710, 35710
                    266:  5710 continue
                    267:       go to 45710
                    268: 35710 ivdele = ivdele + 1
                    269:       write (i02,80003) ivtnum
                    270:       if (iczero) 45710, 5721, 45710
                    271: 45710 if ( icon07 - 0 )  25710, 15710, 25710
                    272: 15710 ivpass = ivpass + 1
                    273:       write (i02,80001) ivtnum
                    274:       go to 5721
                    275: 25710 ivfail = ivfail + 1
                    276:       ivcomp = icon07
                    277:       ivcorr = -0
                    278:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    279:  5721 continue
                    280:       ivtnum = 572
                    281: c
                    282: c      ****  test 572  ****
                    283: c     test 572  -  test of an integer variable set to the integer
                    284: c         constant  (signed)  -32766.
                    285: c
                    286: c
                    287:       if (iczero) 35720, 5720, 35720
                    288:  5720 continue
                    289:       go to 45720
                    290: 35720 ivdele = ivdele + 1
                    291:       write (i02,80003) ivtnum
                    292:       if (iczero) 45720, 5731, 45720
                    293: 45720 if ( icon08 + 32766 )  25720, 15720, 25720
                    294: 15720 ivpass = ivpass + 1
                    295:       write (i02,80001) ivtnum
                    296:       go to 5731
                    297: 25720 ivfail = ivfail + 1
                    298:       ivcomp = icon08
                    299:       ivcorr = -32766
                    300:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    301:  5731 continue
                    302:       ivtnum = 573
                    303: c
                    304: c      ****  test 573  ****
                    305: c     test 573  -  test the effect of leading zero on an integer
                    306: c         constant  00003.
                    307: c
                    308: c
                    309:       if (iczero) 35730, 5730, 35730
                    310:  5730 continue
                    311:       go to 45730
                    312: 35730 ivdele = ivdele + 1
                    313:       write (i02,80003) ivtnum
                    314:       if (iczero) 45730, 5741, 45730
                    315: 45730 if ( icon09 - 3 )  25730, 15730, 25730
                    316: 15730 ivpass = ivpass + 1
                    317:       write (i02,80001) ivtnum
                    318:       go to 5741
                    319: 25730 ivfail = ivfail + 1
                    320:       ivcomp = icon09
                    321:       ivcorr = 3
                    322:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    323:  5741 continue
                    324:       ivtnum = 574
                    325: c
                    326: c      ****  test 574  ****
                    327: c     test 574  -  test of blanks imbedded in an integer constant
                    328: c         which was / 3 2 7 6 7/ in the data initialization statement.
                    329: c
                    330: c
                    331:       if (iczero) 35740, 5740, 35740
                    332:  5740 continue
                    333:       go to 45740
                    334: 35740 ivdele = ivdele + 1
                    335:       write (i02,80003) ivtnum
                    336:       if (iczero) 45740, 5751, 45740
                    337: 45740 if ( icon10 - 32767 )  25740, 15740, 25740
                    338: 15740 ivpass = ivpass + 1
                    339:       write (i02,80001) ivtnum
                    340:       go to 5751
                    341: 25740 ivfail = ivfail + 1
                    342:       ivcomp = icon10
                    343:       ivcorr = 32767
                    344:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    345:  5751 continue
                    346:       ivtnum = 575
                    347: c
                    348: c      ****  test 575  ****
                    349: c     test 575  -  test of a logical variable set to the logical
                    350: c         constant  .true.
                    351: c         true path of a logical if statement is used in the test.
                    352: c
                    353: c
                    354:       if (iczero) 35750, 5750, 35750
                    355:  5750 continue
                    356:       ivon01 = 0
                    357:       if ( lctn01 )  ivon01 = 1
                    358:       go to 45750
                    359: 35750 ivdele = ivdele + 1
                    360:       write (i02,80003) ivtnum
                    361:       if (iczero) 45750, 5761, 45750
                    362: 45750 if ( ivon01 - 1 )  25750, 15750, 25750
                    363: 15750 ivpass = ivpass + 1
                    364:       write (i02,80001) ivtnum
                    365:       go to 5761
                    366: 25750 ivfail = ivfail + 1
                    367:       ivcomp = ivon01
                    368:       ivcorr = 1
                    369:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    370:  5761 continue
                    371:       ivtnum = 576
                    372: c
                    373: c      ****  test 576  ****
                    374: c     test 576  -  test of a logical variable set to the logical
                    375: c         constant .false.  the false path of a logical if statement
                    376: c         is also used in the test.
                    377: c
                    378: c
                    379:       if (iczero) 35760, 5760, 35760
                    380:  5760 continue
                    381:       ivon01 = 1
                    382:       if ( lctn02 )  ivon01 = 0
                    383:       go to 45760
                    384: 35760 ivdele = ivdele + 1
                    385:       write (i02,80003) ivtnum
                    386:       if (iczero) 45760, 5771, 45760
                    387: 45760 if ( ivon01 - 1 )  25760, 15760, 25760
                    388: 15760 ivpass = ivpass + 1
                    389:       write (i02,80001) ivtnum
                    390:       go to 5771
                    391: 25760 ivfail = ivfail + 1
                    392:       ivcomp = ivon01
                    393:       ivcorr = 1
                    394:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    395:  5771 continue
                    396:       ivtnum = 577
                    397: c
                    398: c      ****  test 577  ****
                    399: c     test 577  -  real variable set to 0.
                    400: c
                    401: c
                    402:       if (iczero) 35770, 5770, 35770
                    403:  5770 continue
                    404:       go to 45770
                    405: 35770 ivdele = ivdele + 1
                    406:       write (i02,80003) ivtnum
                    407:       if (iczero) 45770, 5781, 45770
                    408: 45770 if ( rcon01 - 0. )  25770, 15770, 25770
                    409: 15770 ivpass = ivpass + 1
                    410:       write (i02,80001) ivtnum
                    411:       go to 5781
                    412: 25770 ivfail = ivfail + 1
                    413:       ivcomp = rcon01
                    414:       ivcorr = 0
                    415:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    416:  5781 continue
                    417:       ivtnum = 578
                    418: c
                    419: c      ****  test 578  ****
                    420: c     test 578  -  real variable set to  .0
                    421: c
                    422: c
                    423:       if (iczero) 35780, 5780, 35780
                    424:  5780 continue
                    425:       go to 45780
                    426: 35780 ivdele = ivdele + 1
                    427:       write (i02,80003) ivtnum
                    428:       if (iczero) 45780, 5791, 45780
                    429: 45780 if ( rcon02 - .0 )  25780, 15780, 25780
                    430: 15780 ivpass = ivpass + 1
                    431:       write (i02,80001) ivtnum
                    432:       go to 5791
                    433: 25780 ivfail = ivfail + 1
                    434:       ivcomp = rcon02
                    435:       ivcorr = 0
                    436:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    437:  5791 continue
                    438:       ivtnum = 579
                    439: c
                    440: c      ****  test 579  ****
                    441: c     test 579  -  real variable set to 0.0
                    442: c
                    443: c
                    444:       if (iczero) 35790, 5790, 35790
                    445:  5790 continue
                    446:       go to 45790
                    447: 35790 ivdele = ivdele + 1
                    448:       write (i02,80003) ivtnum
                    449:       if (iczero) 45790, 5801, 45790
                    450: 45790 if ( rcon03 - 0.0 )  25790, 15790, 25790
                    451: 15790 ivpass = ivpass + 1
                    452:       write (i02,80001) ivtnum
                    453:       go to 5801
                    454: 25790 ivfail = ivfail + 1
                    455:       ivcomp = rcon03
                    456:       ivcorr = 0
                    457:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    458:  5801 continue
                    459:       ivtnum = 580
                    460: c
                    461: c      ****  test 580  ****
                    462: c     test 580  -  real variable set to 32767.
                    463: c
                    464: c
                    465:       if (iczero) 35800, 5800, 35800
                    466:  5800 continue
                    467:       go to 45800
                    468: 35800 ivdele = ivdele + 1
                    469:       write (i02,80003) ivtnum
                    470:       if (iczero) 45800, 5811, 45800
                    471: 45800 if ( rcon04 - 32767. )  25800, 15800, 25800
                    472: 15800 ivpass = ivpass + 1
                    473:       write (i02,80001) ivtnum
                    474:       go to 5811
                    475: 25800 ivfail = ivfail + 1
                    476:       ivcomp = rcon04
                    477:       ivcorr = 32767
                    478:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    479:  5811 continue
                    480:       ivtnum = 581
                    481: c
                    482: c      ****  test 581  ****
                    483: c     test 581  -  real variable set to -32766.
                    484: c
                    485: c
                    486:       if (iczero) 35810, 5810, 35810
                    487:  5810 continue
                    488:       go to 45810
                    489: 35810 ivdele = ivdele + 1
                    490:       write (i02,80003) ivtnum
                    491:       if (iczero) 45810, 5821, 45810
                    492: 45810 if ( rcon05 + 32766 )  25810, 15810, 25810
                    493: 15810 ivpass = ivpass + 1
                    494:       write (i02,80001) ivtnum
                    495:       go to 5821
                    496: 25810 ivfail = ivfail + 1
                    497:       ivcomp = rcon05
                    498:       ivcorr = -32766
                    499:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    500:  5821 continue
                    501:       ivtnum = 582
                    502: c
                    503: c      ****  test 582  ****
                    504: c     test 582  -  real variable set to -000587.  test of leading sign
                    505: c         and leading zeros on a real constant.
                    506: c
                    507: c
                    508:       if (iczero) 35820, 5820, 35820
                    509:  5820 continue
                    510:       go to 45820
                    511: 35820 ivdele = ivdele + 1
                    512:       write (i02,80003) ivtnum
                    513:       if (iczero) 45820, 5831, 45820
                    514: 45820 if ( rcon06 + 587. )  25820, 15820, 25820
                    515: 15820 ivpass = ivpass + 1
                    516:       write (i02,80001) ivtnum
                    517:       go to 5831
                    518: 25820 ivfail = ivfail + 1
                    519:       ivcomp = rcon06
                    520:       ivcorr = -587
                    521:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    522:  5831 continue
                    523:       ivtnum = 583
                    524: c
                    525: c      ****  test 583  ****
                    526: c     test 583  -  real variable set to 99.99
                    527: c
                    528: c
                    529:       if (iczero) 35830, 5830, 35830
                    530:  5830 continue
                    531:       go to 45830
                    532: 35830 ivdele = ivdele + 1
                    533:       write (i02,80003) ivtnum
                    534:       if (iczero) 45830, 5841, 45830
                    535: 45830 if ( rcon07 - 99.99 )  25830, 15830, 25830
                    536: 15830 ivpass = ivpass + 1
                    537:       write (i02,80001) ivtnum
                    538:       go to 5841
                    539: 25830 ivfail = ivfail + 1
                    540:       ivcomp = rcon07
                    541:       ivcorr = 99
                    542:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    543:  5841 continue
                    544:       ivtnum = 584
                    545: c
                    546: c      ****  test 584  ****
                    547: c     test 584  -  real variable set to /-03. 2  7 6   6/ to test
                    548: c         the effect of blanks imbedded in a real constant.
                    549: c
                    550: c
                    551:       if (iczero) 35840, 5840, 35840
                    552:  5840 continue
                    553:       go to 45840
                    554: 35840 ivdele = ivdele + 1
                    555:       write (i02,80003) ivtnum
                    556:       if (iczero) 45840, 5851, 45840
                    557: 45840 if ( rcon08 + 3.2766 )  25840, 15840, 25840
                    558: 15840 ivpass = ivpass + 1
                    559:       write (i02,80001) ivtnum
                    560:       go to 5851
                    561: 25840 ivfail = ivfail + 1
                    562:       ivcomp = rcon08
                    563:       ivcorr = -3
                    564:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    565:  5851 continue
                    566:       ivtnum = 585
                    567: c
                    568: c      ****  test 585  ****
                    569: c     test 585  -  integer array element set to 3
                    570: c
                    571: c
                    572:       if (iczero) 35850, 5850, 35850
                    573:  5850 continue
                    574:       go to 45850
                    575: 35850 ivdele = ivdele + 1
                    576:       write (i02,80003) ivtnum
                    577:       if (iczero) 45850, 5861, 45850
                    578: 45850 if ( iadn11(1) - 3 )  25850, 15850, 25850
                    579: 15850 ivpass = ivpass + 1
                    580:       write (i02,80001) ivtnum
                    581:       go to 5861
                    582: 25850 ivfail = ivfail + 1
                    583:       ivcomp = iadn11(1)
                    584:       ivcorr = 3
                    585:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    586:  5861 continue
                    587:       ivtnum = 586
                    588: c
                    589: c      ****  test 586  ****
                    590: c     test 586  -  integer array element set to  32767
                    591: c
                    592: c
                    593:       if (iczero) 35860, 5860, 35860
                    594:  5860 continue
                    595:       go to 45860
                    596: 35860 ivdele = ivdele + 1
                    597:       write (i02,80003) ivtnum
                    598:       if (iczero) 45860, 5871, 45860
                    599: 45860 if ( iadn11(2) - 32767 )  25860, 15860, 25860
                    600: 15860 ivpass = ivpass + 1
                    601:       write (i02,80001) ivtnum
                    602:       go to 5871
                    603: 25860 ivfail = ivfail + 1
                    604:       ivcomp = iadn11(2)
                    605:       ivcorr = 32767
                    606:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    607:  5871 continue
                    608:       ivtnum = 587
                    609: c
                    610: c      ****  test 587  ****
                    611: c     test 587  -  integer array element set to -587
                    612: c
                    613: c
                    614:       if (iczero) 35870, 5870, 35870
                    615:  5870 continue
                    616:       go to 45870
                    617: 35870 ivdele = ivdele + 1
                    618:       write (i02,80003) ivtnum
                    619:       if (iczero) 45870, 5881, 45870
                    620: 45870  if ( iadn11(3) + 587 )  25870, 15870, 25870
                    621: 15870 ivpass = ivpass + 1
                    622:       write (i02,80001) ivtnum
                    623:       go to 5881
                    624: 25870 ivfail = ivfail + 1
                    625:       ivcomp = iadn11(3)
                    626:       ivcorr = -587
                    627:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    628:  5881 continue
                    629:       ivtnum = 588
                    630: c
                    631: c      ****  test 588  ****
                    632: c     test 588  -  test of the repeat field  /4*999/ in a data state.
                    633: c
                    634: c
                    635:       if (iczero) 35880, 5880, 35880
                    636:  5880 continue
                    637:       go to 45880
                    638: 35880 ivdele = ivdele + 1
                    639:       write (i02,80003) ivtnum
                    640:       if (iczero) 45880, 5891, 45880
                    641: 45880 if ( iadn12(3) - 9999 )  25880, 15880, 25880
                    642: 15880 ivpass = ivpass + 1
                    643:       write (i02,80001) ivtnum
                    644:       go to 5891
                    645: 25880 ivfail = ivfail + 1
                    646:       ivcomp = iadn12(3)
                    647:       ivcorr = 9999
                    648:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    649:  5891 continue
                    650:       ivtnum = 589
                    651: c
                    652: c      ****  test 589  ****
                    653: c     test 589  -  test of setting the whole integer array elements
                    654: c         in one data initialization statement.  the first element
                    655: c         is set to 0
                    656: c
                    657: c
                    658:       if (iczero) 35890, 5890, 35890
                    659:  5890 continue
                    660:       go to 45890
                    661: 35890 ivdele = ivdele + 1
                    662:       write (i02,80003) ivtnum
                    663:       if (iczero) 45890, 5901, 45890
                    664: 45890 if ( iadn13(1) - 0 )  25890, 15890, 25890
                    665: 15890 ivpass = ivpass + 1
                    666:       write (i02,80001) ivtnum
                    667:       go to 5901
                    668: 25890 ivfail = ivfail + 1
                    669:       ivcomp = iadn13(1)
                    670:       ivcorr = 0
                    671:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    672:  5901 continue
                    673:       ivtnum = 590
                    674: c
                    675: c      ****  test 590  ****
                    676: c     test 590  -  see test 589.  the second element was set to -32766
                    677: c
                    678: c
                    679:       if (iczero) 35900, 5900, 35900
                    680:  5900 continue
                    681:       go to 45900
                    682: 35900 ivdele = ivdele + 1
                    683:       write (i02,80003) ivtnum
                    684:       if (iczero) 45900, 5911, 45900
                    685: 45900 if ( iadn13(2) + 32766 )  25900, 15900, 25900
                    686: 15900 ivpass = ivpass + 1
                    687:       write (i02,80001) ivtnum
                    688:       go to 5911
                    689: 25900 ivfail = ivfail + 1
                    690:       ivcomp = iadn13(2)
                    691:       ivcorr = -32766
                    692:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    693:  5911 continue
                    694:       ivtnum = 591
                    695: c
                    696: c      ****  test 591  ****
                    697: c     test 591  -  see test 589.  the third element was set to -32766
                    698: c
                    699: c
                    700:       if (iczero) 35910, 5910, 35910
                    701:  5910 continue
                    702:       go to 45910
                    703: 35910 ivdele = ivdele + 1
                    704:       write (i02,80003) ivtnum
                    705:       if (iczero) 45910, 5921, 45910
                    706: 45910 if ( iadn13(3) + 32766 )  25910, 15910, 25910
                    707: 15910 ivpass = ivpass + 1
                    708:       write (i02,80001) ivtnum
                    709:       go to 5921
                    710: 25910 ivfail = ivfail + 1
                    711:       ivcomp = iadn13(3)
                    712:       ivcorr = -32766
                    713:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    714:  5921 continue
                    715:       ivtnum = 592
                    716: c
                    717: c      ****  test 592  ****
                    718: c     test 592  -  see test 589.  the fourth element was set to -587
                    719: c
                    720: c
                    721:       if (iczero) 35920, 5920, 35920
                    722:  5920 continue
                    723:       go to 45920
                    724: 35920 ivdele = ivdele + 1
                    725:       write (i02,80003) ivtnum
                    726:       if (iczero) 45920, 5931, 45920
                    727: 45920 if ( iadn13(4) + 587 )  25920, 15920, 25920
                    728: 15920 ivpass = ivpass + 1
                    729:       write (i02,80001) ivtnum
                    730:       go to 5931
                    731: 25920 ivfail = ivfail + 1
                    732:       ivcomp = iadn13(4)
                    733:       ivcorr = -587
                    734:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    735:  5931 continue
                    736:       ivtnum = 593
                    737: c
                    738: c      ****  test 593  ****
                    739: c     test 593  -  test of setting the whole logical array in one
                    740: c         data initialization statement.  the first element is .true.
                    741: c         the second and third elements are .false.
                    742: c         the false path of a logical if statement is used  testing 2.
                    743: c
                    744: c
                    745:       if (iczero) 35930, 5930, 35930
                    746:  5930 continue
                    747:       ivon01 = 1
                    748:       if ( ladn11(2) )  ivon01 = 0
                    749:       go to 45930
                    750: 35930 ivdele = ivdele + 1
                    751:       write (i02,80003) ivtnum
                    752:       if (iczero) 45930, 5941, 45930
                    753: 45930 if ( ivon01 - 1 )  25930, 15930, 25930
                    754: 15930 ivpass = ivpass + 1
                    755:       write (i02,80001) ivtnum
                    756:       go to 5941
                    757: 25930 ivfail = ivfail + 1
                    758:       ivcomp = ivon01
                    759:       ivcorr = 1
                    760:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    761:  5941 continue
                    762:       ivtnum = 594
                    763: c
                    764: c      ****  test 594  ****
                    765: c     test 594  -  see test 593.  the fourth element is tested
                    766: c         with the true path of the logical if statement.
                    767: c
                    768: c
                    769:       if (iczero) 35940, 5940, 35940
                    770:  5940 continue
                    771:       ivon01 = 0
                    772:       if ( ladn11(4) )  ivon01 = 1
                    773:       go to 45940
                    774: 35940 ivdele = ivdele + 1
                    775:       write (i02,80003) ivtnum
                    776:       if (iczero) 45940, 5951, 45940
                    777: 45940 if ( ivon01 - 1 )  25940, 15940, 25940
                    778: 15940 ivpass = ivpass + 1
                    779:       write (i02,80001) ivtnum
                    780:       go to 5951
                    781: 25940 ivfail = ivfail + 1
                    782:       ivcomp = ivon01
                    783:       ivcorr = 1
                    784:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    785:  5951 continue
                    786:       ivtnum = 595
                    787: c
                    788: c      ****  test 595  ****
                    789: c     test 595  -  a whole real array is set in one data initialization
                    790: c         statement.  the second element is -32.766
                    791: c
                    792: c
                    793:       if (iczero) 35950, 5950, 35950
                    794:  5950 continue
                    795:       go to 45950
                    796: 35950 ivdele = ivdele + 1
                    797:       write (i02,80003) ivtnum
                    798:       if (iczero) 45950, 5961, 45950
                    799: 45950 if ( radn11(2) + 32.766 )  25950, 15950, 25950
                    800: 15950 ivpass = ivpass + 1
                    801:       write (i02,80001) ivtnum
                    802:       go to 5961
                    803: 25950 ivfail = ivfail + 1
                    804:       ivcomp = radn11(2)
                    805:       ivcorr = -32
                    806:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    807:  5961 continue
                    808:       ivtnum = 596
                    809: c
                    810: c      ****  test 596  ****
                    811: c     test 596  -  see test 595.  the fourth element is set to 587
                    812: c         by a repeat field.
                    813: c
                    814: c
                    815:       if (iczero) 35960, 5960, 35960
                    816:  5960 continue
                    817:       go to 45960
                    818: 35960 ivdele = ivdele + 1
                    819:       write (i02,80003) ivtnum
                    820:       if (iczero) 45960, 5971, 45960
                    821: 45960 if ( radn11(4) - 587 )  25960, 15960, 25960
                    822: 15960 ivpass = ivpass + 1
                    823:       write (i02,80001) ivtnum
                    824:       go to 5971
                    825: 25960 ivfail = ivfail + 1
                    826:       ivcomp = radn11(4)
                    827:       ivcorr = 587
                    828:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    829:  5971 continue
                    830:       ivtnum = 597
                    831: c
                    832: c      ****  test 597  ****
                    833: c     test 597  -  test of mixed array element types in a single data
                    834: c         initialization statement.  the type logical statement contains
                    835: c         the array declarations.  the false path of a logical
                    836: c         if statement tests the logical results.
                    837: c
                    838: c
                    839:       if (iczero) 35970, 5970, 35970
                    840:  5970 continue
                    841:       ivon01 = 1
                    842:       if ( latn11(2) )  ivon01 = 0
                    843:       go to 45970
                    844: 35970 ivdele = ivdele + 1
                    845:       write (i02,80003) ivtnum
                    846:       if (iczero) 45970, 5981, 45970
                    847: 45970 if ( ivon01 - 1 )  25970, 15970, 25970
                    848: 15970 ivpass = ivpass + 1
                    849:       write (i02,80001) ivtnum
                    850:       go to 5981
                    851: 25970 ivfail = ivfail + 1
                    852:       ivcomp = ivon01
                    853:       ivcorr = 1
                    854:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    855:  5981 continue
                    856:       ivtnum = 598
                    857: c
                    858: c      ****  test 598  ****
                    859: c     test 598  -  type of the data was set explicitly real in  the
                    860: c         declarative for the array.  data should be set to 32767.
                    861: c
                    862: c
                    863:       if (iczero) 35980, 5980, 35980
                    864:  5980 continue
                    865:       go to 45980
                    866: 35980 ivdele = ivdele + 1
                    867:       write (i02,80003) ivtnum
                    868:       if (iczero) 45980, 5991, 45980
                    869: 45980 if ( iatn11(2) - 32767. )  25980, 15980, 25980
                    870: 15980 ivpass = ivpass + 1
                    871:       write (i02,80001) ivtnum
                    872:       go to 5991
                    873: 25980 ivfail = ivfail + 1
                    874:       ivcomp = iatn11(2)
                    875:       ivcorr = 32767
                    876:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    877:  5991 continue
                    878:       ivtnum = 599
                    879: c
                    880: c      ****  test 599  ****
                    881: c     test 599  -  type of the data was set explicitly integer in the
                    882: c         declarative for the array.  data should be set to -32766
                    883: c
                    884: c
                    885:       if (iczero) 35990, 5990, 35990
                    886:  5990 continue
                    887:       go to 45990
                    888: 35990 ivdele = ivdele + 1
                    889:       write (i02,80003) ivtnum
                    890:       if (iczero) 45990, 6001, 45990
                    891: 45990 if ( ratn11(2) + 32766 )  25990, 15990, 25990
                    892: 15990 ivpass = ivpass + 1
                    893:       write (i02,80001) ivtnum
                    894:       go to 6001
                    895: 25990 ivfail = ivfail + 1
                    896:       ivcomp = ratn11(2)
                    897:       ivcorr = -32766
                    898:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    899:  6001 continue
                    900:       ivtnum = 600
                    901: c
                    902: c      ****  test 600  ****
                    903: c     test 600  -  test of real decimal constants using e-notation.
                    904: c         see section 4.4.2.  the value of the element should
                    905: c         be set to 32767.
                    906: c
                    907: c
                    908:       if (iczero) 36000, 6000, 36000
                    909:  6000 continue
                    910:       go to 46000
                    911: 36000 ivdele = ivdele + 1
                    912:       write (i02,80003) ivtnum
                    913:       if (iczero) 46000, 6011, 46000
                    914: 46000 if ( radn13(1) - 32767. )  26000, 16000, 26000
                    915: 16000 ivpass = ivpass + 1
                    916:       write (i02,80001) ivtnum
                    917:       go to 6011
                    918: 26000 ivfail = ivfail + 1
                    919:       ivcomp = radn13(1)
                    920:       ivcorr = 32767
                    921:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    922:  6011 continue
                    923:       ivtnum = 601
                    924: c
                    925: c      ****  test 601  ****
                    926: c     test 601  -  like test 600.  real decimal constant value -.32766
                    927: c
                    928: c
                    929:       if (iczero) 36010, 6010, 36010
                    930:  6010 continue
                    931:       go to 46010
                    932: 36010 ivdele = ivdele + 1
                    933:       write (i02,80003) ivtnum
                    934:       if (iczero) 46010, 6021, 46010
                    935: 46010 if ( radn13(2) + .32766 )  26010, 16010, 26010
                    936: 16010 ivpass = ivpass + 1
                    937:       write (i02,80001) ivtnum
                    938:       go to 6021
                    939: 26010 ivfail = ivfail + 1
                    940:       ivcomp = radn13(2)
                    941:       ivcorr = 0
                    942:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    943:  6021 continue
                    944:       ivtnum = 602
                    945: c
                    946: c      ****  test 602  ****
                    947: c     test 602  -  like test 600.  real decimal constant value  587.
                    948: c
                    949: c
                    950:       if (iczero) 36020, 6020, 36020
                    951:  6020 continue
                    952:       go to 46020
                    953: 36020 ivdele = ivdele + 1
                    954:       write (i02,80003) ivtnum
                    955:       if (iczero) 46020, 6031, 46020
                    956: 46020 if ( radn13(3) - 587 )  26020, 16020, 26020
                    957: 16020 ivpass = ivpass + 1
                    958:       write (i02,80001) ivtnum
                    959:       go to 6031
                    960: 26020 ivfail = ivfail + 1
                    961:       ivcomp = radn13(3)
                    962:       ivcorr = 587
                    963:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    964:  6031 continue
                    965:       ivtnum = 603
                    966: c
                    967: c      ****  test 603  ****
                    968: c     test 603  -  like test 600.  real decimal constant value 90.
                    969: c
                    970: c
                    971:       if (iczero) 36030, 6030, 36030
                    972:  6030 continue
                    973:       go to 46030
                    974: 36030 ivdele = ivdele + 1
                    975:       write (i02,80003) ivtnum
                    976:       if (iczero) 46030, 6041, 46030
                    977: 46030 if ( radn13(4) - 90. )  26030, 16030, 26030
                    978: 16030 ivpass = ivpass + 1
                    979:       write (i02,80001) ivtnum
                    980:       go to 6041
                    981: 26030 ivfail = ivfail + 1
                    982:       ivcomp = radn13(4)
                    983:       ivcorr = 90
                    984:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    985:  6041 continue
                    986: c
                    987: c     write page footings and run summaries
                    988: 99999 continue
                    989:       write (i02,90002)
                    990:       write (i02,90006)
                    991:       write (i02,90002)
                    992:       write (i02,90002)
                    993:       write (i02,90007)
                    994:       write (i02,90002)
                    995:       write (i02,90008)  ivfail
                    996:       write (i02,90009) ivpass
                    997:       write (i02,90010) ivdele
                    998: c
                    999: c
                   1000: c     terminate routine execution
                   1001:       stop
                   1002: c
                   1003: c     format statements for page headers
                   1004: 90000 format (1h1)
                   1005: 90002 format (1h )
                   1006: 90001 format (1h ,10x,34hfortran compiler validation system)
                   1007: 90003 format (1h ,21x,11hversion 1.0)
                   1008: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
                   1009: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
                   1010: 90006 format (1h ,5x,46h----------------------------------------------)
                   1011: 90011 format (1h ,18x,17hsubset level test)
                   1012: c
                   1013: c     format statements for run summaries
                   1014: 90008 format (1h ,15x,i5,19h errors encountered)
                   1015: 90009 format (1h ,15x,i5,13h tests passed)
                   1016: 90010 format (1h ,15x,i5,14h tests deleted)
                   1017: c
                   1018: c     format statements for test results
                   1019: 80001 format (1h ,4x,i5,7x,4hpass)
                   1020: 80002 format (1h ,4x,i5,7x,4hfail)
                   1021: 80003 format (1h ,4x,i5,7x,7hdeleted)
                   1022: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
                   1023: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
                   1024: c
                   1025: 90007 format (1h ,20x,20hend of program fm021)
                   1026:       end

unix.superglobalmegacorp.com

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