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

1.1       root        1: c     comment section.
                      2: c
                      3: c     fm022
                      4: c
                      5: c         this routine tests arrays with fixed dimension and size limits
                      6: c     set either in a blank common or dimension statement.  the values
                      7: c     of the array elements are set in various ways such as simple
                      8: c     assignment statements, set to the values of other array elements
                      9: c     (either positive or negative), set by integer to real or real to
                     10: c     integer conversion, set by arithmetic expressions, or set by
                     11: c     use of the  equivalence  statement.
                     12: c
                     13: c      references
                     14: c        american national standard programming language fortran,
                     15: c              x3.9-1978
                     16: c
                     17: c        section 8, specification statements
                     18: c        section 8.1, dimension statement
                     19: c        section 8.2, equivalence statement
                     20: c        section 8.3, common statement
                     21: c        section 8.4, type-statements
                     22: c        section 9, data statement
                     23: c
                     24: c
                     25: c
                     26:       common iadn14(5), radn14(5), ladn13(2)
                     27: c
                     28:       dimension iadn11(5), radn11(5), ladn11(2)
                     29:       dimension iadn12(5), radn12(5), ladn12(2)
                     30:       dimension iadn15(2), radn15(2)
                     31:       dimension iadn16(4), iadn17(4)
                     32: c
                     33:       integer radn13(5)
                     34:       real iadn13(5)
                     35:       logical ladn11, ladn12, ladn13, lctn01
                     36: c
                     37:       equivalence (iadn14(1), iadn15(1)), (radn14(2),radn15(2))
                     38:       equivalence (ladn13(1),lctn01),  (iadn14(5), icon02)
                     39:       equivalence (radn14(5), rcon01)
                     40:       equivalence ( iadn16(3), iadn17(2) )
                     41: c
                     42:       data iadn12(1)/3/, radn12(1)/-512./, iadn13(1)/0.5/, radn13(1)/-3/
                     43: c
                     44: c
                     45: c
                     46: c      **********************************************************
                     47: c
                     48: c         a compiler validation system for the fortran language
                     49: c     based on specifications as defined in american national standard
                     50: c     programming language fortran x3.9-1978, has been developed by the
                     51: c     federal cobol compiler testing service.  the fortran compiler
                     52: c     validation system (fcvs) consists of audit routines, their related
                     53: c     data, and an executive system.  each audit routine is a fortran
                     54: c     program, subprogram or function which includes tests of specific
                     55: c     language elements and supporting procedures indicating the result
                     56: c     of executing these tests.
                     57: c
                     58: c         this particular program/subprogram/function contains features
                     59: c     found only in the subset as defined in x3.9-1978.
                     60: c
                     61: c         suggestions and comments should be forwarded to -
                     62: c
                     63: c                  department of the navy
                     64: c                  federal cobol compiler testing service
                     65: c                  washington, d.c.  20376
                     66: c
                     67: c      **********************************************************
                     68: c
                     69: c
                     70: c
                     71: c     initialization section
                     72: c
                     73: c     initialize constants
                     74: c      **************
                     75: c     i01 contains the logical unit number for the card reader.
                     76:       i01 = 5
                     77: c     i02 contains the logical unit number for the printer.
                     78:       i02 = 6
                     79: c     system environment section
                     80: c
                     81: cx010    this card is replaced by contents of fexec x-010 control card.
                     82: c     the cx010 card is for overriding the program default i01 = 5
                     83: c     (unit number for card reader).
                     84: cx011    this card is replaced by contents of fexec x-011 control card.
                     85: c     the cx011 card is for systems which require additional
                     86: c     fortran statements for files associated with cx010 above.
                     87: c
                     88: cx020    this card is replaced by contents of fexec x-020 control card.
                     89: c     the cx020 card is for overriding the program default i02 = 6
                     90: c     (unit number for printer).
                     91: cx021    this card is replaced by contents of fexec x-021 control card.
                     92: c     the cx021 card is for systems which require additional
                     93: c     fortran statements for files associated with cx020 above.
                     94: c
                     95:       ivpass=0
                     96:       ivfail=0
                     97:       ivdele=0
                     98:       iczero=0
                     99: c
                    100: c     write page headers
                    101:       write (i02,90000)
                    102:       write (i02,90001)
                    103:       write (i02,90002)
                    104:       write (i02, 90002)
                    105:       write (i02,90003)
                    106:       write (i02,90002)
                    107:       write (i02,90004)
                    108:       write (i02,90002)
                    109:       write (i02,90011)
                    110:       write (i02,90002)
                    111:       write (i02,90002)
                    112:       write (i02,90005)
                    113:       write (i02,90006)
                    114:       write (i02,90002)
                    115:       ivtnum = 604
                    116: c
                    117: c      ****  test 604  ****
                    118: c     test 604  -  this tests a  simple assignment statement in setting
                    119: c     an integer array element to a positive value of 32767.
                    120: c
                    121:       if (iczero) 36040, 6040, 36040
                    122:  6040 continue
                    123:       iadn11(5) = 32767
                    124:       ivcomp = iadn11(5)
                    125:       go to 46040
                    126: 36040 ivdele = ivdele + 1
                    127:       write (i02,80003) ivtnum
                    128:       if (iczero) 46040, 6051, 46040
                    129: 46040 if ( ivcomp - 32767 )  26040, 16040, 26040
                    130: 16040 ivpass = ivpass + 1
                    131:       write (i02,80001) ivtnum
                    132:       go to 6051
                    133: 26040 ivfail = ivfail + 1
                    134:       ivcorr = 32767
                    135:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    136:  6051 continue
                    137:       ivtnum = 605
                    138: c
                    139: c      ****  test 605  ****
                    140: c     test 605  -  test of a simple assign with a negative value -32766
                    141: c
                    142:       if (iczero) 36050, 6050, 36050
                    143:  6050 continue
                    144:       iadn11(1) = -32766
                    145:       ivcomp = iadn11(1)
                    146:       go to 46050
                    147: 36050 ivdele = ivdele + 1
                    148:       write (i02,80003) ivtnum
                    149:       if (iczero) 46050, 6061, 46050
                    150: 46050 if ( ivcomp + 32766 )  26050, 16050, 26050
                    151: 16050 ivpass = ivpass + 1
                    152:       write (i02,80001) ivtnum
                    153:       go to 6061
                    154: 26050 ivfail = ivfail + 1
                    155:       ivcorr = -32766
                    156:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    157:  6061 continue
                    158:       ivtnum = 606
                    159: c
                    160: c      ****  test 606  ****
                    161: c     test 606  -  test of unsigned zero set to an array element
                    162: c     by a simple assignment statement.
                    163: c
                    164:       if (iczero) 36060, 6060, 36060
                    165:  6060 continue
                    166:       iadn11(3) = 0
                    167:       ivcomp = iadn11(3)
                    168:       go to 46060
                    169: 36060 ivdele = ivdele + 1
                    170:       write (i02,80003) ivtnum
                    171:       if (iczero) 46060, 6071, 46060
                    172: 46060 if ( ivcomp - 0 )  26060, 16060, 26060
                    173: 16060 ivpass = ivpass + 1
                    174:       write (i02,80001) ivtnum
                    175:       go to 6071
                    176: 26060 ivfail = ivfail + 1
                    177:       ivcorr = 0
                    178:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    179:  6071 continue
                    180:       ivtnum = 607
                    181: c
                    182: c      ****  test 607  ****
                    183: c     test 607  -  test of a negatively signed zero compared to a
                    184: c     zero unsigned both values set as integer array elements.
                    185: c
                    186:       if (iczero) 36070, 6070, 36070
                    187:  6070 continue
                    188:       iadn11(2) = -0
                    189:       iadn11(3) = 0
                    190:       icon01 = 0
                    191:       if ( iadn11(2) .eq. iadn11(3) )  icon01 = 1
                    192:       go to 46070
                    193: 36070 ivdele = ivdele + 1
                    194:       write (i02,80003) ivtnum
                    195:       if (iczero) 46070, 6081, 46070
                    196: 46070 if ( icon01 - 1 )  26070, 16070, 26070
                    197: 16070 ivpass = ivpass + 1
                    198:       write (i02,80001) ivtnum
                    199:       go to 6081
                    200: 26070 ivfail = ivfail + 1
                    201:       ivcomp = icon01
                    202:       ivcorr = 1
                    203:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    204:  6081 continue
                    205:       ivtnum = 608
                    206: c
                    207: c      ****  test 608  ****
                    208: c     test 608  -  test of setting one integer array element equal to
                    209: c     the value of another integer array element.  the value is 32767.
                    210: c
                    211:       if (iczero) 36080, 6080, 36080
                    212:  6080 continue
                    213:       iadn11(1) = 32767
                    214:       iadn12(5) = iadn11(1)
                    215:       ivcomp = iadn12(5)
                    216:       go to 46080
                    217: 36080 ivdele = ivdele + 1
                    218:       write (i02,80003) ivtnum
                    219:       if (iczero) 46080, 6091, 46080
                    220: 46080 if ( ivcomp - 32767 )  26080, 16080, 26080
                    221: 16080 ivpass = ivpass + 1
                    222:       write (i02,80001) ivtnum
                    223:       go to 6091
                    224: 26080 ivfail = ivfail + 1
                    225:       ivcorr = 32767
                    226:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    227:  6091 continue
                    228:       ivtnum = 609
                    229: c
                    230: c      ****  test 609  ****
                    231: c     test 609  -  test of an array element set to another array element
                    232: c     which had been set at compile time by a data initialization
                    233: c     statement.  an integer array is used with the value 3.
                    234: c
                    235:       if (iczero) 36090, 6090, 36090
                    236:  6090 continue
                    237:       iadn11(4) = iadn12(1)
                    238:       ivcomp = iadn11(4)
                    239:       go to 46090
                    240: 36090 ivdele = ivdele + 1
                    241:       write (i02,80003) ivtnum
                    242:       if (iczero) 46090, 6101, 46090
                    243: 46090 if ( ivcomp - 3 )  26090, 16090, 26090
                    244: 16090 ivpass = ivpass + 1
                    245:       write (i02,80001) ivtnum
                    246:       go to 6101
                    247: 26090 ivfail = ivfail + 1
                    248:       ivcorr = 3
                    249:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    250:  6101 continue
                    251:       ivtnum = 610
                    252: c
                    253: c      ****  test 610  ****
                    254: c     test 610  -   test of setting a real array element to a positive
                    255: c     value in a simple assignment statement.  value is 32767.
                    256: c
                    257:       if (iczero) 36100, 6100, 36100
                    258:  6100 continue
                    259:       radn11(5) = 32767.
                    260:       ivcomp = radn11(5)
                    261:       go to 46100
                    262: 36100 ivdele = ivdele + 1
                    263:       write (i02,80003) ivtnum
                    264:       if (iczero) 46100, 6111, 46100
                    265: 46100 if ( ivcomp - 32767 )  26100, 16100, 26100
                    266: 16100 ivpass = ivpass + 1
                    267:       write (i02,80001) ivtnum
                    268:       go to 6111
                    269: 26100 ivfail = ivfail + 1
                    270:       ivcorr = 32767
                    271:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    272:  6111 continue
                    273:       ivtnum = 611
                    274: c
                    275: c      ****  test 611  ****
                    276: c     test 611  -  test of setting a real array element to a negative
                    277: c     value in a simple assignment statement.  value is -32766.
                    278: c
                    279:       if (iczero) 36110, 6110, 36110
                    280:  6110 continue
                    281:       radn11(1) = -32766.
                    282:       ivcomp = radn11(1)
                    283:       go to 46110
                    284: 36110 ivdele = ivdele + 1
                    285:       write (i02,80003) ivtnum
                    286:       if (iczero) 46110, 6121, 46110
                    287: 46110 if ( ivcomp + 32766 )  26110, 16110, 26110
                    288: 16110 ivpass = ivpass + 1
                    289:       write (i02,80001) ivtnum
                    290:       go to 6121
                    291: 26110 ivfail = ivfail + 1
                    292:       ivcorr = -32766
                    293:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    294:  6121 continue
                    295:       ivtnum = 612
                    296: c
                    297: c      ****  test 612  ****
                    298: c     test 612  -  test of setting a real array element to unsigned zero
                    299: c     in a simple assignment statement.
                    300: c
                    301:       if (iczero) 36120, 6120, 36120
                    302:  6120 continue
                    303:       radn11(3) = 0.
                    304:       ivcomp = radn11(3)
                    305:       go to 46120
                    306: 36120 ivdele = ivdele + 1
                    307:       write (i02,80003) ivtnum
                    308:       if (iczero) 46120, 6131, 46120
                    309: 46120 if ( ivcomp - 0 )  26120, 16120, 26120
                    310: 16120 ivpass = ivpass + 1
                    311:       write (i02,80001) ivtnum
                    312:       go to 6131
                    313: 26120 ivfail = ivfail + 1
                    314:       ivcorr = 0
                    315:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    316:  6131 continue
                    317:       ivtnum = 613
                    318: c
                    319: c      ****  test 613  ****
                    320: c     test 613  -  test of a negatively signed zero in a real array
                    321: c     element compared to a real element set to an unsigned zero.
                    322: c
                    323:       if (iczero) 36130, 6130, 36130
                    324:  6130 continue
                    325:       radn11(2) = -0.0
                    326:       radn11(3) = 0.0
                    327:       icon01 = 0
                    328:       if ( radn11(2) .eq. radn11(3) )  icon01 = 1
                    329:       go to 46130
                    330: 36130 ivdele = ivdele + 1
                    331:       write (i02,80003) ivtnum
                    332:       if (iczero) 46130, 6141, 46130
                    333: 46130 if ( icon01 - 1 )  26130, 16130, 26130
                    334: 16130 ivpass = ivpass + 1
                    335:       write (i02,80001) ivtnum
                    336:       go to 6141
                    337: 26130 ivfail = ivfail + 1
                    338:       ivcomp = icon01
                    339:       ivcorr = 1
                    340:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    341:  6141 continue
                    342:       ivtnum = 614
                    343: c
                    344: c      ****  test 614  ****
                    345: c     test 614  -  test of setting one real array element equal to the
                    346: c     value of another real array element.  the value is 32767.
                    347: c
                    348:       if (iczero) 36140, 6140, 36140
                    349:  6140 continue
                    350:       radn11(1) = 32767.
                    351:       radn12(5) = radn11(1)
                    352:       ivcomp = radn12(5)
                    353:       go to 46140
                    354: 36140 ivdele = ivdele + 1
                    355:       write (i02,80003) ivtnum
                    356:       if (iczero) 46140, 6151, 46140
                    357: 46140 if ( ivcomp - 32767 )  26140, 16140, 26140
                    358: 16140 ivpass = ivpass + 1
                    359:       write (i02,80001) ivtnum
                    360:       go to 6151
                    361: 26140 ivfail = ivfail + 1
                    362:       ivcorr = 32767
                    363:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    364:  6151 continue
                    365:       ivtnum = 615
                    366: c
                    367: c      ****  test 615  ****
                    368: c     test 615  -  test of a real array element set to another real
                    369: c     array element which had been set at compile time by a data
                    370: c     initialization statement. the value is -512.
                    371: c
                    372:       if (iczero) 36150, 6150, 36150
                    373:  6150 continue
                    374:       radn11(4) = radn12(1)
                    375:       ivcomp = radn11(4)
                    376:       go to 46150
                    377: 36150 ivdele = ivdele + 1
                    378:       write (i02,80003) ivtnum
                    379:       if (iczero) 46150, 6161, 46150
                    380: 46150 if ( ivcomp + 512 )  26150, 16150, 26150
                    381: 16150 ivpass = ivpass + 1
                    382:       write (i02,80001) ivtnum
                    383:       go to 6161
                    384: 26150 ivfail = ivfail + 1
                    385:       ivcorr = - 512
                    386:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    387:  6161 continue
                    388:       ivtnum = 616
                    389: c
                    390: c      ****  test 616  ****
                    391: c     test 616  -  test of setting the value of an integer array element
                    392: c     by an arithmetic expression.
                    393: c
                    394:       if (iczero) 36160, 6160, 36160
                    395:  6160 continue
                    396:       icon01 = 1
                    397:       iadn11(3) = icon01 + 1
                    398:       ivcomp = iadn11(3)
                    399:       go to 46160
                    400: 36160 ivdele = ivdele + 1
                    401:       write (i02,80003) ivtnum
                    402:       if (iczero) 46160, 6171, 46160
                    403: 46160 if ( ivcomp - 2 )  26160, 16160, 26160
                    404: 16160 ivpass = ivpass + 1
                    405:       write (i02,80001) ivtnum
                    406:       go to 6171
                    407: 26160 ivfail = ivfail + 1
                    408:       ivcorr = 2
                    409:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    410:  6171 continue
                    411:       ivtnum = 617
                    412: c
                    413: c      ****  test 617  ****
                    414: c     test 617  -  test of setting the value of a real array element
                    415: c     by an arithmetic expression.
                    416: c
                    417:       if (iczero) 36170, 6170, 36170
                    418:  6170 continue
                    419:       rcon01 = 1.
                    420:       radn11(3) = rcon01 + 1.
                    421:       ivcomp = radn11(3)
                    422:       go to 46170
                    423: 36170 ivdele = ivdele + 1
                    424:       write (i02,80003) ivtnum
                    425:       if (iczero) 46170, 6181, 46170
                    426: 46170 if ( ivcomp - 2 )  26170, 16170, 26170
                    427: 16170 ivpass = ivpass + 1
                    428:       write (i02,80001) ivtnum
                    429:       go to 6181
                    430: 26170 ivfail = ivfail + 1
                    431:       ivcorr = 2
                    432:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    433:  6181 continue
                    434:       ivtnum = 618
                    435: c
                    436: c      ****  test 618  ****
                    437: c     test 618  -  test of setting the value of an integer array element
                    438: c     to another integer array element and changing the sign.
                    439: c
                    440:       if (iczero) 36180, 6180, 36180
                    441:  6180 continue
                    442:       iadn11(2) = 32766
                    443:       iadn11(4) = - iadn11(2)
                    444:       ivcomp = iadn11(4)
                    445:       go to 46180
                    446: 36180 ivdele = ivdele + 1
                    447:       write (i02,80003) ivtnum
                    448:       if (iczero) 46180, 6191, 46180
                    449: 46180 if ( ivcomp + 32766 )  26180, 16180, 26180
                    450: 16180 ivpass = ivpass + 1
                    451:       write (i02,80001) ivtnum
                    452:       go to 6191
                    453: 26180 ivfail = ivfail + 1
                    454:       ivcorr = -32766
                    455:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    456:  6191 continue
                    457:       ivtnum = 619
                    458: c
                    459: c      ****  test 619  ****
                    460: c     test 619  -  test of setting the value of a real array element
                    461: c     to the value of another real array element and changing the sign.
                    462: c
                    463:       if (iczero) 36190, 6190, 36190
                    464:  6190 continue
                    465:       radn11(2) = 32766.
                    466:       radn11(4) = - radn11(2)
                    467:       ivcomp = radn11(4)
                    468:       go to 46190
                    469: 36190 ivdele = ivdele + 1
                    470:       write (i02,80003) ivtnum
                    471:       if (iczero) 46190, 6201, 46190
                    472: 46190 if ( ivcomp + 32766 )  26190, 16190, 26190
                    473: 16190 ivpass = ivpass + 1
                    474:       write (i02,80001) ivtnum
                    475:       go to 6201
                    476: 26190 ivfail = ivfail + 1
                    477:       ivcorr = -32766
                    478:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    479:  6201 continue
                    480:       ivtnum = 620
                    481: c
                    482: c      ****  test 620  ****
                    483: c     test 620  -  test of setting the value of a logical array element
                    484: c     to the value of another logical array element.
                    485: c
                    486:       if (iczero) 36200, 6200, 36200
                    487:  6200 continue
                    488:       ladn11(1) = .true.
                    489:       ladn12(1) = ladn11(1)
                    490:       icon01 = 0
                    491:       if ( ladn12(1) )  icon01 = 1
                    492:       go to 46200
                    493: 36200 ivdele = ivdele + 1
                    494:       write (i02,80003) ivtnum
                    495:       if (iczero) 46200, 6211, 46200
                    496: 46200 if ( icon01 - 1 )  26200, 16200, 26200
                    497: 16200 ivpass = ivpass + 1
                    498:       write (i02,80001) ivtnum
                    499:       go to 6211
                    500: 26200 ivfail = ivfail + 1
                    501:       ivcomp = icon01
                    502:       ivcorr = 1
                    503:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    504:  6211 continue
                    505:       ivtnum = 621
                    506: c
                    507: c      ****  test 621  ****
                    508: c     test 621  -  test of setting the value of a logical array element
                    509: c     to the value of another logical array element and changing
                    510: c     the value from  .true.  to  .false. by using the .not. statement.
                    511: c
                    512:       if (iczero) 36210, 6210, 36210
                    513:  6210 continue
                    514:       ladn11(2) = .true.
                    515:       ladn12(2) = .not. ladn11(2)
                    516:       icon01 = 1
                    517:       if ( ladn12(2) )  icon01 = 0
                    518:       go to 46210
                    519: 36210 ivdele = ivdele + 1
                    520:       write (i02,80003) ivtnum
                    521:       if (iczero) 46210, 6221, 46210
                    522: 46210 if ( icon01 - 1 )  26210, 16210, 26210
                    523: 16210 ivpass = ivpass + 1
                    524:       write (i02,80001) ivtnum
                    525:       go to 6221
                    526: 26210 ivfail = ivfail + 1
                    527:       ivcomp = icon01
                    528:       ivcorr = 1
                    529:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    530:  6221 continue
                    531:       ivtnum = 622
                    532: c
                    533: c      ****  test 622  ****
                    534: c     test 622  -  test of the type statement and the data
                    535: c     initialization statement.  the explicitly real array element
                    536: c     should have the value of .5
                    537: c
                    538:       if (iczero) 36220, 6220, 36220
                    539:  6220 continue
                    540:       ivcomp = 2. * iadn13(1)
                    541:       go to 46220
                    542: 36220 ivdele = ivdele + 1
                    543:       write (i02,80003) ivtnum
                    544:       if (iczero) 46220, 6231, 46220
                    545: 46220 if ( ivcomp - 1 )  26220, 16220, 26220
                    546: 16220 ivpass = ivpass + 1
                    547:       write (i02,80001) ivtnum
                    548:       go to 6231
                    549: 26220 ivfail = ivfail + 1
                    550:       ivcorr = 1
                    551:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    552:  6231 continue
                    553:       ivtnum = 623
                    554: c
                    555: c      ****  test 623  ****
                    556: c     test 623  -  test of real to integer conversion using arrays.
                    557: c     the initialized value of 0.5 should be truncated to zero.
                    558: c
                    559:       if (iczero) 36230, 6230, 36230
                    560:  6230 continue
                    561:       iadn11(1) = iadn13(1)
                    562:       ivcomp = iadn11(1)
                    563:       go to 46230
                    564: 36230 ivdele = ivdele + 1
                    565:       write (i02,80003) ivtnum
                    566:       if (iczero) 46230, 6241, 46230
                    567: 46230 if ( ivcomp - 0 )  26230, 16230, 26230
                    568: 16230 ivpass = ivpass + 1
                    569:       write (i02,80001) ivtnum
                    570:       go to 6241
                    571: 26230 ivfail = ivfail + 1
                    572:       ivcorr = 0
                    573:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    574:  6241 continue
                    575:       ivtnum = 624
                    576: c
                    577: c      ****  test 624  ****
                    578: c     test 624  -  test of the common statement by setting the value of
                    579: c     an integer array element in a dimensioned array to the value
                    580: c     of a real array element in common.  the element in common had its
                    581: c     value set in a simple assignment statement to 9999.
                    582: c
                    583:       if (iczero) 36240, 6240, 36240
                    584:  6240 continue
                    585:       radn14(1) = 9999.
                    586:       iadn11(1) = radn14(1)
                    587:       ivcomp = iadn11(1)
                    588:       go to 46240
                    589: 36240 ivdele = ivdele + 1
                    590:       write (i02,80003) ivtnum
                    591:       if (iczero) 46240, 6251, 46240
                    592: 46240 if ( ivcomp - 9999 )  26240, 16240, 26240
                    593: 16240 ivpass = ivpass + 1
                    594:       write (i02,80001) ivtnum
                    595:       go to 6251
                    596: 26240 ivfail = ivfail + 1
                    597:       ivcorr = 9999
                    598:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    599:  6251 continue
                    600:       ivtnum = 625
                    601: c
                    602: c      ****  test 625  ****
                    603: c     test 625  -  test of setting the value of an integer array element
                    604: c     in common to the value of a real array element also in blank
                    605: c     common and changing the sign.  the value used is 9999.
                    606: c
                    607:       if (iczero) 36250, 6250, 36250
                    608:  6250 continue
                    609:       radn14(1) = 9999.
                    610:       iadn14(1) = - radn14(1)
                    611:       ivcomp = iadn14(1)
                    612:       go to 46250
                    613: 36250 ivdele = ivdele + 1
                    614:       write (i02,80003) ivtnum
                    615:       if (iczero) 46250, 6261, 46250
                    616: 46250 if ( ivcomp + 9999 ) 26250, 16250, 26250
                    617: 16250 ivpass = ivpass + 1
                    618:       write (i02,80001) ivtnum
                    619:       go to 6261
                    620: 26250 ivfail = ivfail + 1
                    621:       ivcorr = - 9999
                    622:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    623:  6261 continue
                    624:       ivtnum = 626
                    625: c
                    626: c      ****  test 626  ****
                    627: c     test 626  -  test of setting the value of a logical array element
                    628: c     in blank common to  .not.  .true.
                    629: c     the value of another logical array element also in common is then
                    630: c     set to .not. of the value of the first.
                    631: c     value of the first element should be .false.
                    632: c     value of the second element should be .true.
                    633: c
                    634:       if (iczero) 36260, 6260, 36260
                    635:  6260 continue
                    636:       ladn13(1) = .not. .true.
                    637:       ladn13(2) = .not. ladn13(1)
                    638:       icon01 = 0
                    639:       if ( ladn13(2) )  icon01 = 1
                    640:       go to 46260
                    641: 36260 ivdele = ivdele + 1
                    642:       write (i02,80003) ivtnum
                    643:       if (iczero) 46260, 6271, 46260
                    644: 46260 if ( icon01 - 1 )  26260, 16260, 26260
                    645: 16260 ivpass = ivpass + 1
                    646:       write (i02,80001) ivtnum
                    647:       go to 6271
                    648: 26260 ivfail = ivfail + 1
                    649:       ivcomp = icon01
                    650:       ivcorr = 1
                    651:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    652:  6271 continue
                    653:       ivtnum = 627
                    654: c
                    655: c      ****  test 627  ****
                    656: c     test 627  -  test of equivalence on the first elements of integer
                    657: c     arrays one of which is in common and the other one is dimensioned.
                    658: c
                    659:       if (iczero) 36270, 6270, 36270
                    660:  6270 continue
                    661:       iadn14(2) = 32767
                    662:       ivcomp = iadn15(2)
                    663:       go to 46270
                    664: 36270 ivdele = ivdele + 1
                    665:       write (i02,80003) ivtnum
                    666:       if (iczero) 46270, 6281, 46270
                    667: 46270 if ( ivcomp - 32767 )  26270, 16270, 26270
                    668: 16270 ivpass = ivpass + 1
                    669:       write (i02,80001) ivtnum
                    670:       go to 6281
                    671: 26270 ivfail = ivfail + 1
                    672:       ivcorr = 32767
                    673:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    674:  6281 continue
                    675:       ivtnum = 628
                    676: c
                    677: c      ****  test 628  ****
                    678: c     test 628  -  test of equivalence on real arrays one of which is
                    679: c     in common and the other one is dimensioned.  the arrays were
                    680: c     aligned on their second elements.
                    681: c
                    682:       if (iczero) 36280, 6280, 36280
                    683:  6280 continue
                    684:       radn15(1) = -32766.
                    685:       ivcomp = radn14(1)
                    686:       go to 46280
                    687: 36280 ivdele = ivdele + 1
                    688:       write (i02,80003) ivtnum
                    689:       if (iczero) 46280, 6291, 46280
                    690: 46280 if ( ivcomp + 32766 )  26280, 16280, 26280
                    691: 16280 ivpass = ivpass + 1
                    692:       write (i02,80001) ivtnum
                    693:       go to 6291
                    694: 26280 ivfail = ivfail + 1
                    695:       ivcorr = -32766
                    696:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    697:  6291 continue
                    698:       ivtnum = 629
                    699: c
                    700: c      ****  test 629  ****
                    701: c     test 629  -  test of equivalence with logical elements.  an array
                    702: c     element in common is equivalenced to a logical variable.
                    703: c
                    704:       if (iczero) 36290, 6290, 36290
                    705:  6290 continue
                    706:       ladn13(2) = .true.
                    707:       lctn01 = .not. ladn13(2)
                    708:       icon01 = 1
                    709:       if ( ladn13(1) )  icon01 = 0
                    710:       go to 46290
                    711: 36290 ivdele = ivdele + 1
                    712:       write (i02,80003) ivtnum
                    713:       if (iczero) 46290, 6301, 46290
                    714: 46290 if ( icon01 - 1 )  26290, 16290, 26290
                    715: 16290 ivpass = ivpass + 1
                    716:       write (i02,80001) ivtnum
                    717:       go to 6301
                    718: 26290 ivfail = ivfail + 1
                    719:       ivcomp = icon01
                    720:       ivcorr = 1
                    721:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    722:  6301 continue
                    723:       ivtnum = 630
                    724: c
                    725: c      ****  test 630  ****
                    726: c     test 630  -  test of equivalence with real and integer elements
                    727: c     which are equivalenced to array elements in common.
                    728: c
                    729:       if (iczero) 36300, 6300, 36300
                    730:  6300 continue
                    731:       rcon01 = 1.
                    732:       icon02 = - radn14(5)
                    733:       ivcomp = iadn14(5)
                    734:       go to 46300
                    735: 36300 ivdele = ivdele + 1
                    736:       write (i02,80003) ivtnum
                    737:       if (iczero) 46300, 6311, 46300
                    738: 46300 if ( ivcomp + 1 )  26300, 16300, 26300
                    739: 16300 ivpass = ivpass + 1
                    740:       write (i02,80001) ivtnum
                    741:       go to 6311
                    742: 26300 ivfail = ivfail + 1
                    743:       ivcorr = -1
                    744:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    745:  6311 continue
                    746:       ivtnum = 631
                    747: c
                    748: c      ****  test 631  ****
                    749: c     test 631  -  test of equivalence on integer array elements.
                    750: c     both arrays are dimensioned.  the fourth element
                    751: c     of the first of the arrays should be equal to the third element of
                    752: c     the second array.
                    753: c
                    754:       if (iczero) 36310, 6310, 36310
                    755:  6310 continue
                    756:       iadn16(4) = 9999
                    757:       ivcomp = iadn17(3)
                    758:       go to 46310
                    759: 36310 ivdele = ivdele + 1
                    760:       write (i02,80003) ivtnum
                    761:       if (iczero) 46310, 6321, 46310
                    762: 46310 if ( ivcomp - 9999 )  26310, 16310, 26310
                    763: 16310 ivpass = ivpass + 1
                    764:       write (i02,80001) ivtnum
                    765:       go to 6321
                    766: 26310 ivfail = ivfail + 1
                    767:       ivcorr = 9999
                    768:       write (i02,80004) ivtnum, ivcomp ,ivcorr
                    769:  6321 continue
                    770: c
                    771: c     write page footings and run summaries
                    772: 99999 continue
                    773:       write (i02,90002)
                    774:       write (i02,90006)
                    775:       write (i02,90002)
                    776:       write (i02,90002)
                    777:       write (i02,90007)
                    778:       write (i02,90002)
                    779:       write (i02,90008)  ivfail
                    780:       write (i02,90009) ivpass
                    781:       write (i02,90010) ivdele
                    782: c
                    783: c
                    784: c     terminate routine execution
                    785:       stop
                    786: c
                    787: c     format statements for page headers
                    788: 90000 format (1h1)
                    789: 90002 format (1h )
                    790: 90001 format (1h ,10x,34hfortran compiler validation system)
                    791: 90003 format (1h ,21x,11hversion 1.0)
                    792: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
                    793: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
                    794: 90006 format (1h ,5x,46h----------------------------------------------)
                    795: 90011 format (1h ,18x,17hsubset level test)
                    796: c
                    797: c     format statements for run summaries
                    798: 90008 format (1h ,15x,i5,19h errors encountered)
                    799: 90009 format (1h ,15x,i5,13h tests passed)
                    800: 90010 format (1h ,15x,i5,14h tests deleted)
                    801: c
                    802: c     format statements for test results
                    803: 80001 format (1h ,4x,i5,7x,4hpass)
                    804: 80002 format (1h ,4x,i5,7x,4hfail)
                    805: 80003 format (1h ,4x,i5,7x,7hdeleted)
                    806: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
                    807: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
                    808: c
                    809: 90007 format (1h ,20x,20hend of program fm022)
                    810:       end

unix.superglobalmegacorp.com

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