Annotation of cci/usr/src/usr.bin/f77/testf77/tests/FM010.f, revision 1.1.1.1

1.1       root        1: C     COMMENT SECTION.                                                  00010010
                      2: C     DATE***82/08/02*18.33.46
                      3: C     OWNER  PRE/850703/TC-85-   -410/    /FSTC/278FCVS*F78UBP20/
                      4: C     AUDIT  FCVS78 V2.0
                      5: C                                                                       00020010
                      6: C      FM010                                                            00030010
                      7: C                                                                       00040010
                      8: C             THIS ROUTINE TESTS REFERENCE FORMAT OF FORTRAN STATEMENTS 00050010
                      9: C     AND STATEMENT NUMBERS.  THE USE OF THE BLANK CHARACTER IS TESTED  00060010
                     10: C     BOTH WITHIN THE STATEMENT NUMBER FIELD AND WITHIN THE FORTRAN     00070010
                     11: C     STATEMENTS THEMSELVES.  LEADING ZERO IS TESTED FOR STATEMENTS AND 00080010
                     12: C     INTEGER CONSTANTS.  VARIABLE NAMES WHICH LOOK VERY MUCH LIKE      00090010
                     13: C     FORTRAN RESERVED WORDS ARE TESTED IN ARITHMETIC ASSIGNMENT        00100010
                     14: C     STATEMENTS.  NAMING CONVENTIONS USED THROUGHOUT THE FCVS ARE      00110010
                     15: C     TESTED ALSO IN ARITHMETIC ASSIGNMENT STATEMENTS.                  00120010
                     16: C                                                                       00130010
                     17: C      REFERENCES                                                       00140010
                     18: C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,       00150010
                     19: C              X3.9-1978                                                00160010
                     20: C                                                                       00170010
                     21: C        SECTION 2.5, VARIABLES                                         00180010
                     22: C        SECTION 3.1.6, BLANK CHARACTER                                 00190010
                     23: C        SECTION 3.2.2, INITIAL LINES                                   00200010
                     24: C        SECTION 3.4, STATEMENT LABELS                                  00210010
                     25: C                                                                       00220010
                     26: C                                                                       00230010
                     27: C      **********************************************************       00240010
                     28: C                                                                       00250010
                     29: C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE         00260010
                     30: C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD  00270010
                     31: C     PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00280010
                     32: C     FEDERAL COBOL COMPILER TESTING SERVICE.  THE FORTRAN COMPILER     00290010
                     33: C     VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00300010
                     34: C     DATA, AND AN EXECUTIVE SYSTEM.  EACH AUDIT ROUTINE IS A FORTRAN   00310010
                     35: C     PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC  00320010
                     36: C     LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00330010
                     37: C     OF EXECUTING THESE TESTS.                                         00340010
                     38: C                                                                       00350010
                     39: C         THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00360010
                     40: C     FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978.                 00370010
                     41: C                                                                       00380010
                     42: C         SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO -             00390010
                     43: C                                                                       00400010
                     44: C                  DEPARTMENT OF THE NAVY                               00410010
                     45: C                  FEDERAL COBOL COMPILER TESTING SERVICE               00420010
                     46: C                  WASHINGTON, D.C.  20376                              00430010
                     47: C                                                                       00440010
                     48: C      **********************************************************       00450010
                     49: C                                                                       00460010
                     50: C                                                                       00470010
                     51: C                                                                       00480010
                     52: C     INITIALIZATION SECTION                                            00490010
                     53: C                                                                       00500010
                     54: C     INITIALIZE CONSTANTS                                              00510010
                     55: C      **************                                                   00520010
                     56: C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER.         00530010
                     57:       I01 = 5                                                           00540010
                     58: C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER.             00550010
                     59:       I02 = 6                                                           00560010
                     60: C     SYSTEM ENVIRONMENT SECTION                                        00570010
                     61: C                                                                       00580010
                     62:       I01 = 5                                                           00590010
                     63: C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5      00600010
                     64: C     (UNIT NUMBER FOR CARD READER).                                    00610010
                     65: CX011    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00620010
                     66: C     THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00630010
                     67: C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE.         00640010
                     68: C                                                                       00650010
                     69:       I02 = 6                                                           00660010
                     70: C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6      00670010
                     71: C     (UNIT NUMBER FOR PRINTER).                                        00680010
                     72: CX021    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00690010
                     73: C     THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00700010
                     74: C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE.         00710010
                     75: C                                                                       00720010
                     76:       IVPASS=0                                                          00730010
                     77:       IVFAIL=0                                                          00740010
                     78:       IVDELE=0                                                          00750010
                     79:       ICZERO=0                                                          00760010
                     80: C                                                                       00770010
                     81: C     WRITE PAGE HEADERS                                                00780010
                     82:       WRITE (I02,90000)                                                 00790010
                     83:       WRITE (I02,90001)                                                 00800010
                     84:       WRITE (I02,90002)                                                 00810010
                     85:       WRITE (I02, 90002)                                                00820010
                     86:       WRITE (I02,90003)                                                 00830010
                     87:       WRITE (I02,90002)                                                 00840010
                     88:       WRITE (I02,90004)                                                 00850010
                     89:       WRITE (I02,90002)                                                 00860010
                     90:       WRITE (I02,90011)                                                 00870010
                     91:       WRITE (I02,90002)                                                 00880010
                     92:       WRITE (I02,90002)                                                 00890010
                     93:       WRITE (I02,90005)                                                 00900010
                     94:       WRITE (I02,90006)                                                 00910010
                     95:       WRITE (I02,90002)                                                 00920010
                     96:  1001 CONTINUE                                                          00930010
                     97:       IVTNUM = 100                                                      00940010
                     98: C                                                                       00950010
                     99: C      ****  TEST  100  ****                                            00960010
                    100: C                                                                       00970010
                    101: C     TEST 100  -  TO CHECK THE VARIOUS COMBINATIONS OF FORMING VARIABLE00980010
                    102: C           NAMES.  THESE ARE ACTUALLY SYMBOLIC NAMES (ANSI X3.9-1978   00990010
                    103: C           SECTION 2.2).  THIS IS BASICALLY A SYNTAX CHECK USING A     01000010
                    104: C           COMBINATION OF FROM ONE TO SIX ALPHANUMERIC CHARACTERS WITH 01010010
                    105: C           THE FIRST CHARACTER ALWAYS ALPHABETIC.  REFERENCE FORMAT IS 01020010
                    106: C           ALSO CHECKED BY HAVING EACH ASSIGNMENT STATEMENT AN INITIAL 01030010
                    107: C           LINE (SECTION 3.2.2).  THIS MEANS ZERO MAY APPEAR IN COLUMN 01040010
                    108: C           SIX WITHOUT EFFECT, THAT LINES MAY BEGIN ANYWHERE FROM      01050010
                    109: C           COLUMN SEVEN TO COLUMN 72, AND BLANKS MAY BE USED FREELY    01060010
                    110: C           WITHOUT MEANING (3.1.6 BLANK CHARACTERS).                   01070010
                    111: C                                                                       01080010
                    112:       IF (ICZERO) 31000, 1000, 31000                                    01090010
                    113:  1000 CONTINUE                                                          01100010
                    114:       A=1.                                                              01110010
                    115:       B =2.                                                             01120010
                    116:       C =3.                                                             01130010
                    117:       D   =4.                                                           01140010
                    118:       E     =5.                                                         01150010
                    119:       F      =6.                                                        01160010
                    120:      0G                      =                   7.                     01170010
                    121:                                         H=8.                            01180010
                    122:                                                                      I=901190010
                    123:       J  =  10                                                          01200010
                    124:           K        =          11                                        01210010
                    125:       L                                 =                             1201220010
                    126:      0M=13                                                              01230010
                    127:       N=14                                                              01240010
                    128:       O=15.                                                             01250010
                    129:       P=16.                                                             01260010
                    130:       Q=17.                                                             01270010
                    131:       R=18.                                                             01280010
                    132:       S=19.                                                             01290010
                    133:       T=20.                                                             01300010
                    134:       U=21.                                                             01310010
                    135:       V=22.                                                             01320010
                    136:       W=23.                                                             01330010
                    137:       X=24.                                                             01340010
                    138:       Y=25.                                                             01350010
                    139:       Z=26.                                                             01360010
                    140:       AAAAAA=27.                                                        01370010
                    141:       BBBBB=28.                                                         01380010
                    142:       CCCC=29.                                                          01390010
                    143:       DDD=30                                                            01400010
                    144:       EE=31.                                                            01410010
                    145:       F0=32.                                                            01420010
                    146:       G12=33.                                                           01430010
                    147:       H345 = 34.                                                        01440010
                    148:       I6789 = 35                                                        01450010
                    149:       J01234 = 36                                                       01460010
                    150:       K 5 6 78  9=37                                                    01470010
                    151:        L 2 L 2 L 2 =38                                                  01480010
                    152:         M  3   M           3                      M3   =              3901490010
                    153:          N         40        =                   4                     001500010
                    154:      0    OMY    =           4                                        1.01510010
                    155:       I   PM   H =           4                                         201520010
                    156:       GO TO 1 = 4 3.                                                    01530010
                    157:       IF 3 = 44                                                         01540010
                    158:       DO 3 =   53.                                                      01550010
                    159:       CALL FL =62.                                                      01560010
                    160:       TYPE I = 63.                                                      01570010
                    161:       TRUE   =71.                                                       01580010
                    162:       FALSE  = 72.                                                      01590010
                    163:       GO TO 41000                                                       01600010
                    164: 31000 IVDELE = IVDELE + 1                                               01610010
                    165:       WRITE (I02,80003) IVTNUM                                          01620010
                    166:       IF (ICZERO) 41000, 1011, 41000                                    01630010
                    167: 41000 IF (IPMH - 42) 21000,11000,21000                                  01640010
                    168: 11000 IVPASS = IVPASS + 1                                               01650010
                    169:       WRITE (I02,80001) IVTNUM                                          01660010
                    170:       GO TO 1011                                                        01670010
                    171: 21000 IVFAIL = IVFAIL + 1                                               01680010
                    172:       IVCOMP = IPMH                                                     01690010
                    173:       IVCORR = 42                                                       01700010
                    174:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01710010
                    175:  1011 CONTINUE                                                          01720010
                    176:       IVTNUM = 101                                                      01730010
                    177: C                                                                       01740010
                    178: C      ****  TEST  101  ****                                            01750010
                    179: C     TEST 101  -  CHECKS THE FCVS NAMING CONVENTIONS FOR INTEGER AND   01760010
                    180: C           REAL VARIABLES IN ASSIGNMENT STATEMENTS: VARIABLE = CONSTANT01770010
                    181: C           BASICALLY A SYNTAX CHECK ON SIX CHARACTER VARIABLE NAMES.   01780010
                    182: C                                                                       01790010
                    183:       IF (ICZERO) 31010, 1010, 31010                                    01800010
                    184:  1010 CONTINUE                                                          01810010
                    185:       IACE11 = 1                                                        01820010
                    186:       IACE21 = 2                                                        01830010
                    187:       IACE31 = 3                                                        01840010
                    188:       IACN11 = 4                                                        01850010
                    189:       IADN11 = 5                                                        01860010
                    190:       IATE31 = 6                                                        01870010
                    191:       RACE11 = 7.                                                       01880010
                    192:       RACE21 = 8.                                                       01890010
                    193:       RACN31 = 9.                                                       01900010
                    194:       RADE31 = 10.                                                      01910010
                    195:       IVTE69 = 11                                                       01920010
                    196:       IVON78 = 12                                                       01930010
                    197:       RVTNAZ = 13.                                                      01940010
                    198:       RVOEZ9 = 14.                                                      01950010
                    199:       ICTE96 = 15                                                       01960010
                    200:       ICON84 = 16                                                       01970010
                    201:       RCON48 = 17.                                                      01980010
                    202:       RCTE54 = 18.                                                      01990010
                    203:       IDONY4 = 19                                                       02000010
                    204:       IDOEB6 = 20                                                       02010010
                    205:       RDON46 = 21.                                                      02020010
                    206:       IFONS3 = 22                                                       02030010
                    207:       RFON77 = 23.                                                      02040010
                    208:       GO TO 41010                                                       02050010
                    209: 31010 IVDELE = IVDELE + 1                                               02060010
                    210:       WRITE (I02,80003) IVTNUM                                          02070010
                    211:       IF (ICZERO) 41010, 1021, 41010                                    02080010
                    212: 41010 IF (IVTE69 - 11) 21010,11010,21010                                02090010
                    213: 11010 IVPASS = IVPASS + 1                                               02100010
                    214:       WRITE (I02,80001) IVTNUM                                          02110010
                    215:       GO TO 1021                                                        02120010
                    216: 21010 IVFAIL = IVFAIL + 1                                               02130010
                    217:       IVCOMP = IVTE69                                                   02140010
                    218:       IVCORR = 11                                                       02150010
                    219:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02160010
                    220:  1021 CONTINUE                                                          02170010
                    221:       IVTNUM = 102                                                      02180010
                    222: C                                                                       02190010
                    223: C      ****  TEST  102  ****                                            02200010
                    224: C     TEST 102  -  REFERENCE FORMAT CHECK ON STATEMENT LABELS (SECTION  02210010
                    225: C           3.4). THESE ARE NON-ZERO INTEGERS, FROM 1 TO 5 DIGITS,      02220010
                    226: C           MAY BEGIN ANYWHERE FROM COLS. 1 TO 5, AND LEADING ZEROS ARE 02230010
                    227: C           NOT SIGNIFICANT.  BLANKS WILL BE IMBEDDED IN SOME OF THE    02240010
                    228: C           STATEMENT LABELS AND THESE SHOULD HAVE NO EFFECT.  THE      02250010
                    229: C           CONTINUE STATEMENT (SECTION 11.11) IS USED FOR THIS TEST.   02260010
                    230: C           A BASIC FCVS ASSUMPTION IS THAT THE LOGIC WILL FALL THRU A  02270010
                    231: C           SERIES OF CONTINUE STATEMENTS (NORMAL EXECUTION SEQUENCE).  02280010
                    232: C                                                                       02290010
                    233:       IF (ICZERO) 31020, 1020, 31020                                    02300010
                    234:  1020 CONTINUE                                                          02310010
                    235: 1     CONTINUE                                                          02320010
                    236:  2    CONTINUE                                                          02330010
                    237:   3   CONTINUE                                                          02340010
                    238:    4  CONTINUE                                                          02350010
                    239:     5 CONTINUE                                                          02360010
                    240: 06    CONTINUE                                                          02370010
                    241:  007  CONTINUE                                                          02380010
                    242:  0008 CONTINUE                                                          02390010
                    243: 00009 CONTINUE                                                          02400010
                    244:  010  CONTINUE                                                          02410010
                    245: 1   1 CONTINUE                                                          02420010
                    246:  0 12 CONTINUE                                                          02430010
                    247: 0 1 3 CONTINUE                                                          02440010
                    248: 00 14 CONTINUE                                                          02450010
                    249: 0 15  CONTINUE                                                          02460010
                    250: 0 016 CONTINUE                                                          02470010
                    251: 100   CONTINUE                                                          02480010
                    252: 1 0 1 CONTINUE                                                          02490010
                    253: 10  2 IVON01 = 1                                                        02500010
                    254: 1  03 CONTINUE                                                          02510010
                    255:  1 04 CONTINUE                                                          02520010
                    256: 01 05 CONTINUE                                                          02530010
                    257: 010 6 CONTINUE                                                          02540010
                    258: 0107  CONTINUE                                                          02550010
                    259: 00108 CONTINUE                                                          02560010
                    260: 1 1 1 CONTINUE                                                          02570010
                    261: 1 111 CONTINUE                                                          02580010
                    262:   99  CONTINUE                                                          02590010
                    263: 9 9 9 CONTINUE                                                          02600010
                    264: 99 99 CONTINUE                                                          02610010
                    265:       GO TO 41020                                                       02620010
                    266: 31020 IVDELE = IVDELE + 1                                               02630010
                    267:       WRITE (I02,80003) IVTNUM                                          02640010
                    268:       IF (ICZERO) 41020, 1031, 41020                                    02650010
                    269: 41020 IF (IVON01 - 1) 21020,11020,21020                                 02660010
                    270: 11020 IVPASS = IVPASS + 1                                               02670010
                    271:       WRITE (I02,80001) IVTNUM                                          02680010
                    272:       GO TO 1031                                                        02690010
                    273: 21020 IVFAIL = IVFAIL + 1                                               02700010
                    274:       IVCOMP = IVON01                                                   02710010
                    275:       IVCORR = 1                                                        02720010
                    276:       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02730010
                    277:  1031 CONTINUE                                                          02740010
                    278: C                                                                       02750010
                    279: C     WRITE PAGE FOOTINGS AND RUN SUMMARIES                             02760010
                    280: 99999 CONTINUE                                                          02770010
                    281:       WRITE (I02,90002)                                                 02780010
                    282:       WRITE (I02,90006)                                                 02790010
                    283:       WRITE (I02,90002)                                                 02800010
                    284:       WRITE (I02,90002)                                                 02810010
                    285:       WRITE (I02,90007)                                                 02820010
                    286:       WRITE (I02,90002)                                                 02830010
                    287:       WRITE (I02,90008)  IVFAIL                                         02840010
                    288:       WRITE (I02,90009) IVPASS                                          02850010
                    289:       WRITE (I02,90010) IVDELE                                          02860010
                    290: C                                                                       02870010
                    291: C                                                                       02880010
                    292: C     TERMINATE ROUTINE EXECUTION                                       02890010
                    293:       STOP                                                              02900010
                    294: C                                                                       02910010
                    295: C     FORMAT STATEMENTS FOR PAGE HEADERS                                02920010
                    296: 90000 FORMAT (1H1)                                                      02930010
                    297: 90002 FORMAT (1H )                                                      02940010
                    298: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM)            02950010
                    299: 90003 FORMAT (1H ,21X,11HVERSION 1.0)                                   02960010
                    300: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978)        02970010
                    301: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 02980010
                    302: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 02990010
                    303: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST)                             03000010
                    304: C                                                                       03010010
                    305: C     FORMAT STATEMENTS FOR RUN SUMMARIES                               03020010
                    306: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED)                        03030010
                    307: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED)                              03040010
                    308: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED)                             03050010
                    309: C                                                                       03060010
                    310: C     FORMAT STATEMENTS FOR TEST RESULTS                                03070010
                    311: 80001 FORMAT (1H ,4X,I5,7X,4HPASS)                                      03080010
                    312: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL)                                      03090010
                    313: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED)                                   03100010
                    314: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6)                         03110010
                    315: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5)                    03120010
                    316: C                                                                       03130010
                    317: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM010)                          03140010
                    318:       END                                                               03150010

unix.superglobalmegacorp.com

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