FM411.f Source File


Contents

Source Code


Source Code

      PROGRAM FM411                                                     00010411
C                                                                       00020411
C                                                                       00030411
C                                                                       00040411
C        THIS ROUTINE TESTS FOR PROPER PROCESSING OF UNFORMATTED RECORDS00050411
C     WITH A FILE  CONNECTED FOR SEQUENTIAL ACCESS.  UNFORMATTED RECORDS00060411
C     MAY BE READ OR WRITTEN ONLY BY UNFORMATTED INPUT/OUTPUT STATE-    00070411
C     MENTS.  THIS ROUTINE TESTS SEVERAL SYNTACTICAL VARIATIONS OF THE  00080411
C     UNFORMATTED READ AND WRITE STATEMENTS AS WELL AS THE FILE         00090411
C     POSITIONING STATEMENTS BACKSPACE, ENDFILE AND REWIND.   IN        00100411
C     ADDITION UNFORMATTED RECORDS MAY HAVE BOTH CHARACTER AND          00110411
C     NONCHARACTER DATA.  THIS DATA IS TRANSFERRED WITHOUT EDITING      00120411
C     BETWEEN THE CURRENT RECORD AND ENTITIES SPECIFIED BY THE INPUT/   00130411
C     OUTPUT LIST ITEMS.  THIS ROUTINE BOTH READS AND WRITES            00140411
C     RECORDS CONTAINING DATA OF LOGICAL, REAL AND INTEGER TYPE WITH    00150411
C     I/O LIST ITEMS REPRESENTED AS VARIABLE NAMES, ARRAY ELEMENT       00160411
C     NAMES AND ARRAY NAMES.   THIS ROUTINE DOES NOT TEST DATA OF TYPE  00170411
C     CHARACTER.                                                        00180411
C        ROUTINE FM413 TESTS USE OF UNFORMATTED RECORDS WITH A FILE     00190411
C     CONNECTED FOR DIRECT ACCESS.                                      00200411
C                                                                       00210411
C        THIS ROUTINE TESTS                                             00220411
C                                                                       00230411
C             (1) THE STATEMENT CONSTRUCTS                              00240411
C                                                                       00250411
C                 A. WRITE (U)         VARIABLE-NAME,...                00260411
C                 B. WRITE (U)         ARRAY-ELEMENT-NAME,...           00270411
C                 C. WRITE (U)         ARRAY-NAME,...                   00280411
C                 D. WRITE (U)                   -  NO OUTPUT LIST      00290411
C                 E. WRITE (U)         IMPLIED-DO-LIST                  00300411
C                 F. READ (U)          VARIABLE-NAME,...                00310411
C                 G. READ (U)          ARRAY-ELEMENT-NAME,...           00320411
C                 H. READ (U)          ARRAY-NAME,...                   00330411
C                 I. READ (U,END=S)              -  NO INPUT LIST       00340411
C                 J. READ (U,END=S)    VARIABLE-NAME                    00350411
C                 K. READ (U)          IMPLIED-DO-LIST                  00360411
C                                                                       00370411
C             (2) USE OF A READ STATEMENT WHERE THE NUMBER OF VALUES    00380411
C                 IN THE INPUT LIST IS LESS THAN OR EQUAL TO THE        00390411
C                 NUMBER OF VALUES IN THE RECORD.                       00400411
C                                                                       00410411
C             (3) USE OF THE BACKSPACE, REWIND AND ENDFILE STATEMENT    00420411
C                 ON A FILE CONTAINING UNFORMATTED RECORDS.             00430411
C                                                                       00440411
C             (4) USE OF A REWIND STATEMENT ON A FILE THAT IS CONNECTED 00450411
C                 BUT DOES NOT EXIST.                                   00460411
C                                                                       00470411
C             (5) USE OF AN ENDFILE STATEMENT TO CREATE A FILE THAT     00480411
C                 DOES NOT EXIST                                        00490411
C                                                                       00500411
C     REFERENCES -                                                      00510411
C                                                                       00520411
C           AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,    00530411
C           X3.9-1977                                                   00540411
C                                                                       00550411
C             SECTION 4.1,        DATA TYPES                            00560411
C             SECTION 12.1.2,     UNFORMATTED RECORDS                   00570411
C             SECTION 12.2.1,     FILE EXISTENCE                        00580411
C             SECTION 12.2.4,     FILE ACCESS                           00590411
C             SECTION 12.2.4.1,   SEQUENTIAL ACCESS                     00600411
C             SECTION 12.3.3,     UNIT SPECIFIER AND IDENTIFIER         00610411
C             SECTION 12.7.2,     END-OF-FILE SPECIFIER                 00620411
C             SECTION 12.8,       READ, WRITE AND PRINT STATEMENTS      00630411
C             SECTION 12.8.1,     CONTROL INFORMATION LIST              00640411
C             SECTION 12.8.2,     INPUT/OUTPUT LIST                     00650411
C             SECTION 12.8.2.1,   INPUT LIST ITEMS                      00660411
C             SECTION 12.8.2.2,   OUTPUT LIST ITEMS                     00670411
C             SECTION 12.8.2.3,   IMPLIED-DO  LIST                      00680411
C             SECTION 12.9.5.1,   UNFORMATTED DATA TRANSFER             00690411
C             SECTION 12.10.4,    FILE POSITIONING STATEMENTS           00700411
C             SECTION 12.10.4.1   BACKSPACE STATEMENT                   00710411
C             SECTION 12.10.4.2,  ENDFILE STATEMENT                     00720411
C             SECTION 12.10.4.3,  REWIND STATEMENT                      00730411
C                                                                       00740411
C                                                                       00750411
C                                                                       00760411
C     ******************************************************************00770411
C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE         00780411
C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN   00790411
C     X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY.  THE 00800411
C     FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT       00810411
C     ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM.  EACH AUDIT00820411
C     ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS   00830411
C     OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00840411
C     THE RESULT OF EXECUTING THESE TESTS.                              00850411
C                                                                       00860411
C     THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES      00870411
C     FOUND IN THE SUBSET LEVEL OF THE STANDARD.                        00880411
C                                                                       00890411
C           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO             00900411
C              NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY           00910411
C                   SOFTWARE STANDARDS VALIDATION GROUP                 00920411
C                          BUILDING 225  RM A266                        00930411
C                         GAITHERSBURG, MD  20899                       00940411
C     ******************************************************************00950411
C                                                                       00960411
C                                                                       00970411
      IMPLICIT LOGICAL (L)                                              00980411
      IMPLICIT CHARACTER*14 (C)                                         00990411
C                                                                       01000411
      LOGICAL  LAON11, LAON21, LAON31, LCONT1, LCONF2, LVONT1, LVONF2   01010411
      LOGICAL  LAON12, LAON22, LAON32, LCONT3, LCONF4, LVONT3, LVONF4   01020411
      LOGICAL  LCONT5, LCONF6, LCONT7, LCONF8, LVONT5, LVONF6, LVONT7   01030411
      LOGICAL LVONF8                                                    01040411
      DIMENSION IDUMP(80)                                               01050411
      DIMENSION IAON11(8), IAON21(2,4), IAON31(2,2,2)                   01060411
      DIMENSION IAON12(8), IAON22(2,4), IAON32(2,2,2)                   01070411
      DIMENSION RAON11(8), RAON21(2,4), RAON31(2,2,2)                   01080411
      DIMENSION RAON12(8), RAON22(2,4), RAON32(2,2,2)                   01090411
      DIMENSION LAON11(8), LAON21(2,4), LAON31(2,2,2)                   01100411
      DIMENSION LAON12(8), LAON22(2,4), LAON32(2,2,2)                   01110411
      DATA  IAON11 /11, -11, 777, -777, 512, -512, -32767, 32767/       01120411
      DATA  IAON21 /11, -11, 777, -777, 512, -512, -32767, 32767/       01130411
      DATA  IAON31 /11, -11, 777, -777, 512, -512, -32767, 32767/       01140411
      DATA  LAON11 /.TRUE., .FALSE., .TRUE., .FALSE., .TRUE., .FALSE.,  01150411
     1              .TRUE., .FALSE./                                    01160411
      DATA  LAON21 /.TRUE., .FALSE., .TRUE., .FALSE., .TRUE., .FALSE.,  01170411
     1              .TRUE., .FALSE./                                    01180411
      DATA  LAON31 /.TRUE., .FALSE., .TRUE., .FALSE., .TRUE., .FALSE.,  01190411
     1              .TRUE., .FALSE./                                    01200411
      DATA  RAON11 /11., -11., 7.77, -7.77,.512, -.512, -32767., 32767./01210411
      DATA  RAON21 /11., -11., 7.77, -7.77,.512, -.512, -32767., 32767./01220411
      DATA  RAON31 /11., -11., 7.77, -7.77,.512, -.512, -32767., 32767./01230411
      ICON21 = 11                                                       01240411
      ICON22 = -11                                                      01250411
      ICON31 = +777                                                     01260411
      ICON32 = -777                                                     01270411
      ICON33 =  512                                                     01280411
      ICON34 = -512                                                     01290411
      ICON55 = -32767                                                   01300411
      ICON56 =  32767                                                   01310411
      RCON21 = 11.                                                      01320411
      RCON22 = -11.                                                     01330411
      RCON31 = +7.77                                                    01340411
      RCON32 = -7.77                                                    01350411
      RCON33 = .512                                                     01360411
      RCON34 = -.512                                                    01370411
      RCON55 = -32767.                                                  01380411
      RCON56 =  32767.                                                  01390411
      LCONT1 = .TRUE.                                                   01400411
      LCONF2 = .FALSE.                                                  01410411
      LCONT3 = .TRUE.                                                   01420411
      LCONF4 = .FALSE.                                                  01430411
      LCONT5 = .TRUE.                                                   01440411
      LCONF6 = .FALSE.                                                  01450411
      LCONT7 = .TRUE.                                                   01460411
      LCONF8 = .FALSE.                                                  01470411
C                                                                       01480411
C          THE FILE USED IN THIS ROUTINE HAS THE FOLLOWING PROPERTIES   01490411
C                                                                       01500411
C                  FILE IDENTIFIER     - I04 (X-NUMBER 04)              01510411
C                  RECORD SIZE         - 80                             01520411
C                  ACCESS METHOD       - SEQUENTIAL                     01530411
C                  RECORD TYPE         - UNFORMATTED                    01540411
C                  DESIGNATED DEVICE   - DISK                           01550411
C                  TYPE OF DATA        - INTEGER, REAL AND LOGICAL      01560411
C                  RECORDS IN FILE     - 142 PLUS ENDFILE RECORD        01570411
C                                                                       01580411
C          THE FIRST 6 FIELDS OF EACH RECORD IN THE FILE UNIQUELY IDENT-01590411
C     IFIES THAT RECORD.  THE REMAINING FIELDS OF THE RECORD CONTAIN    01600411
C     DATA WHICH ARE USED IN TESTING.  A DESCRIPTION OF EACH FIELD      01610411
C     OF THE  PREAMBLE FOLLOWS.                                         01620411
C                                                                       01630411
C                  VARIABLE NAME IN PROGRAM          FIELD NUMBER       01640411
C                  ------------------------          ------------       01650411
C                                                                       01660411
C                  IPROG  (ROUTINE NAME)         -       1              01670411
C                  IFILE  (LOGICAL/X-NUMBER)     -       2              01680411
C                  ITOTR  (RECORDS IN FILE)      -       3              01690411
C                  IRLGN  (LENGTH OF RECORD)     -       4              01700411
C                  IRECN  (RECORD NUMBER)        -       5              01710411
C                  IEOF   (9999 IF LAST RECORD)  -       6              01720411
C                                                                       01730411
C                                                                       01740411
C                                                                       01750411
C                                                                       01760411
C     INITIALIZATION SECTION.                                           01770411
C                                                                       01780411
C     INITIALIZE CONSTANTS                                              01790411
C     ********************                                              01800411
C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER          01810411
      I01 = 5                                                           01820411
C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER              01830411
      I02 = 6                                                           01840411
C     SYSTEM ENVIRONMENT SECTION                                        01850411
C                                                                       01860411
CX010     THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD.01870411
C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5      01880411
C     (UNIT NUMBER FOR CARD READER).                                    01890411
CX011      THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD01900411
C     THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            01910411
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE.         01920411
C                                                                       01930411
CX020     THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD.01940411
C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6      01950411
C     (UNIT NUMBER FOR PRINTER).                                        01960411
CX021     THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.01970411
C     THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            01980411
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE.         01990411
C                                                                       02000411
      IVPASS = 0                                                        02010411
      IVFAIL = 0                                                        02020411
      IVDELE = 0                                                        02030411
      ICZERO = 0                                                        02040411
C                                                                       02050411
C     WRITE OUT PAGE HEADERS                                            02060411
C                                                                       02070411
      WRITE (I02,90002)                                                 02080411
      WRITE (I02,90006)                                                 02090411
      WRITE (I02,90008)                                                 02100411
      WRITE (I02,90004)                                                 02110411
      WRITE (I02,90010)                                                 02120411
      WRITE (I02,90004)                                                 02130411
      WRITE (I02,90016)                                                 02140411
      WRITE (I02,90001)                                                 02150411
      WRITE (I02,90004)                                                 02160411
      WRITE (I02,90012)                                                 02170411
      WRITE (I02,90014)                                                 02180411
      WRITE (I02,90004)                                                 02190411
C                                                                       02200411
      I04 = 8                                                           02210411
C     I04  CONTAINS THE LOGICAL UNIT NUMBER FOR A SEQUENTIAL ACCESS FILE02220411
CX040        THIS CARD IS REPLACED BY CONTENTS OF X-040 CARD            02230411
CX041        THIS CARD IS REPLACED BY CONTENTS OF X-041 CARD            02240411
      IPROG = 411                                                       02250411
      IFILE = I04                                                       02260411
      ITOTR = 142                                                       02270411
      IRLGN = 80                                                        02280411
      IRECN = 0                                                         02290411
      IEOF = 0                                                          02300411
C                                                                       02310411
C     ****  FCVS PROGRAM 411  -  TEST 001  ****                         02320411
C                                                                       02330411
C                                                                       02340411
C        TEST 001 USES THE REWIND STATEMENT ON A FILE THAT IS CONNECTED 02350411
C     BUT DOES NOT EXIST.  THERE SHOULD BE NO EFFECT ON THE FILE WHEN   02360411
C     THIS STATEMENT IS EXECUTED.  CONNECTION OF THE FILE TO A UNIT     02370411
C     IS ASSUMED TO BE DONE BY PRECONNECTION.                           02380411
C                                                                       02390411
C                  SEE SECTION 12.10.4.3,  REWIND STATEMENT             02400411
C                                                                       02410411
C                                                                       02420411
      IVTNUM =   1                                                      02430411
      IF (ICZERO) 30010, 0010, 30010                                    02440411
 0010 CONTINUE                                                          02450411
      IVCORR = 1                                                        02460411
      IVCOMP = 0                                                        02470411
      REWIND I04                                                        02480411
      IVCOMP = 1                                                        02490411
40010 IF (IVCOMP - 1) 20010, 10010, 20010                               02500411
30010 IVDELE = IVDELE + 1                                               02510411
      WRITE (I02,80000) IVTNUM                                          02520411
      IF (ICZERO) 10010, 0021, 20010                                    02530411
10010 IVPASS = IVPASS + 1                                               02540411
      WRITE (I02,80002) IVTNUM                                          02550411
      GO TO 0021                                                        02560411
20010 IVFAIL = IVFAIL + 1                                               02570411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          02580411
 0021 CONTINUE                                                          02590411
C                                                                       02600411
C     ****  FCVS PROGRAM 411  -  TEST 002  ****                         02610411
C                                                                       02620411
C                                                                       02630411
C         TEST 002 USES THE ENDFILE STATEMENT TO CREATE A FILE THAT IS  02640411
C     CONNECTED BUT DOES NOT EXIST.  NO RECORDS HAVE BEEN WRITTEN TO    02650411
C     THE FILE BEFORE THE ENDFILE STATEMENT IS EXECUTED.  AS IN THE     02660411
C     PRECEDING TEST, IT IS ASSUMED THAT CONNECTION OF THE FILE TO A    02670411
C     UNIT IS DONE BY PRECONNECTION.                                    02680411
C                                                                       02690411
C                  SEE SECTIONS 12.2.1,   FILE EXISTENCE                02700411
C                               12.10.4.2,  ENDFILE STATEMENT           02710411
C                                                                       02720411
C                                                                       02730411
      IVTNUM =   2                                                      02740411
      IF (ICZERO) 30020, 0020, 30020                                    02750411
 0020 CONTINUE                                                          02760411
      IVCORR = 1                                                        02770411
      IVCOMP = 0                                                        02780411
      ENDFILE I04                                                       02790411
      REWIND  I04                                                       02800411
      READ (I04, END = 0023)  IVON01                                    02810411
C                                                                       02820411
C        TO TEST CREATION OF A FILE VIA A ENDFILE STATEMENT THE FILE    02830411
C     IS REWOUND AND READ.  AN END-OF-FILE CONDITION IS EXPECTED TO     02840411
C     OCCUR ON THE FIRST READ SINCE THE ONLY RECORD WRITTEN TO THE      02850411
C     FILE WAS THE ENDFILE RECORD.                                      02860411
C                                                                       02870411
      IVCOMP = 0                                                        02880411
      GO TO 40020                                                       02890411
 0023 IVCOMP = 1                                                        02900411
40020 IF (IVCOMP - 1)  20020, 10020, 20020                              02910411
30020 IVDELE = IVDELE + 1                                               02920411
      WRITE (I02,80000) IVTNUM                                          02930411
      IF (ICZERO) 10020, 0031, 20020                                    02940411
10020 IVPASS = IVPASS + 1                                               02950411
      WRITE (I02,80002) IVTNUM                                          02960411
      GO TO 0031                                                        02970411
20020 IVFAIL = IVFAIL + 1                                               02980411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          02990411
 0031 CONTINUE                                                          03000411
C                                                                       03010411
C                                                                       03020411
C        TESTS 003 THROUGH 019 USE A PRECONNECTED FILE FOR SEQUENTIAL   03030411
C     ACCESS TO WRITE 141 RECORDS TO THE FILE. THESE TESTS TEST USE OF  03040411
C     THE ALLOWABLE FORMS OF THE WRITE STATEMENT ON A  FILE CONNECTED   03050411
C     FOR SEQUENTIAL ACCESS.  THE WRITE STATEMENT IS USED WITH          03060411
C     THE I/O LIST ITEM AS A VARIABLE, ARRAY ELEMENT AND AN ARRAY.      03070411
C        THE PURPOSE OF TESTS 003 THROUGH 019 IS TO CHECK THE COMPILER'S03080411
C     ABILITY TO HANDLE THE VARIOUS STATEMENT  CONSTRUCTS OF THE        03090411
C     WRITE STATEMENT.      LATER TESTS WITHIN THIS ROUINE READ AND     03100411
C     CHECK THE RECORDS WHICH ARE CREATED.                              03110411
C        THE VALUE IN IVCORR FOR TESTS 002 THROUGH 013 IS THE RECORD    03120411
C     NUMBER FOR THE RECORD.                                            03130411
C                                                                       03140411
C                                                                       03150411
C                                                                       03160411
C     ****  FCVS PROGRAM 411  -  TEST 003  ****                         03170411
C                                                                       03180411
C                                                                       03190411
      IVTNUM =   3                                                      03200411
      IF (ICZERO) 30030, 0030, 30030                                    03210411
 0030 CONTINUE                                                          03220411
      REWIND I04                                                        03230411
C     REPOSITION TO BEGINNING OF FILE                                   03240411
C                                                                       03250411
C        TEST 003 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM     03260411
C     IS A VARIABLE OF INTEGER TYPE.                                    03270411
C                                                                       03280411
      IRECN = 01                                                        03290411
      IVCORR = 01                                                       03300411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    03310411
     1   ICON21, ICON22, ICON31, ICON32, ICON33, ICON34, ICON55, ICON56 03320411
      IVCOMP = IRECN                                                    03330411
40030 IF (IVCOMP - 01)  20030, 10030, 20030                             03340411
30030 IVDELE = IVDELE + 1                                               03350411
      WRITE (I02,80000) IVTNUM                                          03360411
      IF (ICZERO) 10030, 0041, 20030                                    03370411
10030 IVPASS = IVPASS + 1                                               03380411
      WRITE (I02,80002) IVTNUM                                          03390411
      GO TO 0041                                                        03400411
20030 IVFAIL = IVFAIL + 1                                               03410411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          03420411
 0041 CONTINUE                                                          03430411
C                                                                       03440411
C     ****  FCVS PROGRAM 411  -  TEST 004  ****                         03450411
C                                                                       03460411
C                                                                       03470411
C        TEST 004 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM     03480411
C     IS A VARIABLE OF REAL TYPE.                                       03490411
C                                                                       03500411
C                                                                       03510411
      IVTNUM =   4                                                      03520411
      IF (ICZERO) 30040, 0040, 30040                                    03530411
 0040 CONTINUE                                                          03540411
      IRECN = 02                                                        03550411
      IVCORR = 02                                                       03560411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    03570411
     1   RCON21, RCON22, RCON31, RCON32, RCON33, RCON34, RCON55, RCON56 03580411
      IVCOMP = IRECN                                                    03590411
40040 IF (IVCOMP - 02)  20040, 10040, 20040                             03600411
30040 IVDELE = IVDELE + 1                                               03610411
      WRITE (I02,80000) IVTNUM                                          03620411
      IF (ICZERO) 10040, 0051, 20040                                    03630411
10040 IVPASS = IVPASS + 1                                               03640411
      WRITE (I02,80002) IVTNUM                                          03650411
      GO TO 0051                                                        03660411
20040 IVFAIL = IVFAIL + 1                                               03670411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          03680411
 0051 CONTINUE                                                          03690411
C                                                                       03700411
C     ****  FCVS PROGRAM 411  -  TEST 005  ****                         03710411
C                                                                       03720411
C                                                                       03730411
C        TEST 005 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM     03740411
C     IS A VARIABLE OF LOGICAL TYPE.                                    03750411
C                                                                       03760411
C                                                                       03770411
      IVTNUM =   5                                                      03780411
      IF (ICZERO) 30050, 0050, 30050                                    03790411
 0050 CONTINUE                                                          03800411
      IRECN = 03                                                        03810411
      IVCORR = 03                                                       03820411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    03830411
     1   LCONT1, LCONF2,  LCONT3, LCONF4, LCONT5, LCONF6, LCONT7, LCONF803840411
      IVCOMP = IRECN                                                    03850411
40050 IF (IVCOMP - 03)  20050, 10050, 20050                             03860411
30050 IVDELE = IVDELE + 1                                               03870411
      WRITE (I02,80000) IVTNUM                                          03880411
      IF (ICZERO) 10050, 0061, 20050                                    03890411
10050 IVPASS = IVPASS + 1                                               03900411
      WRITE (I02,80002) IVTNUM                                          03910411
      GO TO 0061                                                        03920411
20050 IVFAIL = IVFAIL + 1                                               03930411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          03940411
 0061 CONTINUE                                                          03950411
C                                                                       03960411
C     ****  FCVS PROGRAM 411  -  TEST 006  ****                         03970411
C                                                                       03980411
C                                                                       03990411
C        TEST 006 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM     04000411
C     IS AN ARRAY ELEMENT OF INTEGER TYPE.   ONE, TWO AND THREE         04010411
C     DIMENSION ARRAYS ARE USED.                                        04020411
C                                                                       04030411
C                                                                       04040411
      IVTNUM =   6                                                      04050411
      IF (ICZERO) 30060, 0060, 30060                                    04060411
 0060 CONTINUE                                                          04070411
      IRECN = 04                                                        04080411
      IVCORR = 04                                                       04090411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    04100411
     1   IAON11(1), IAON11(2), IAON21(1,2), IAON21(2,2), IAON31(1,1,2), 04110411
     2   IAON31(2,1,2), IAON11(7), IAON11(8)                            04120411
      IVCOMP = IRECN                                                    04130411
40060 IF (IVCOMP - 04)  20060, 10060, 20060                             04140411
30060 IVDELE = IVDELE + 1                                               04150411
      WRITE (I02,80000) IVTNUM                                          04160411
      IF (ICZERO) 10060, 0071, 20060                                    04170411
10060 IVPASS = IVPASS + 1                                               04180411
      WRITE (I02,80002) IVTNUM                                          04190411
      GO TO 0071                                                        04200411
20060 IVFAIL = IVFAIL + 1                                               04210411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          04220411
 0071 CONTINUE                                                          04230411
C                                                                       04240411
C     ****  FCVS PROGRAM 411  -  TEST 007  ****                         04250411
C                                                                       04260411
C                                                                       04270411
C        TEST 007 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM     04280411
C     IS AN ARRAY ELEMENT OF REAL TYPE.  ONE, TWO AND THREE             04290411
C     DIMENSION ARRAYS ARE USED.                                        04300411
C                                                                       04310411
C                                                                       04320411
      IVTNUM =   7                                                      04330411
      IF (ICZERO) 30070, 0070, 30070                                    04340411
 0070 CONTINUE                                                          04350411
      IRECN = 05                                                        04360411
      IVCORR = 05                                                       04370411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    04380411
     1   RAON11(1), RAON11(2), RAON21(1,2), RAON21(2,2), RAON31(1,1,2), 04390411
     2RAON31(2,1,2), RAON11(7), RAON11 (8)                              04400411
      IVCOMP = IRECN                                                    04410411
40070 IF (IVCOMP - 05)  20070, 10070, 20070                             04420411
30070 IVDELE = IVDELE + 1                                               04430411
      WRITE (I02,80000) IVTNUM                                          04440411
      IF (ICZERO) 10070, 0081, 20070                                    04450411
10070 IVPASS = IVPASS + 1                                               04460411
      WRITE (I02,80002) IVTNUM                                          04470411
      GO TO 0081                                                        04480411
20070 IVFAIL = IVFAIL + 1                                               04490411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          04500411
 0081 CONTINUE                                                          04510411
C                                                                       04520411
C     ****  FCVS PROGRAM 411  -  TEST 008  ****                         04530411
C                                                                       04540411
C                                                                       04550411
C                                                                       04560411
      IVTNUM =   8                                                      04570411
      IF (ICZERO) 30080, 0080, 30080                                    04580411
 0080 CONTINUE                                                          04590411
      IRECN = 06                                                        04600411
      IVCORR = 06                                                       04610411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    04620411
     1   LAON11(1), LAON11(2), LAON21(1,2), LAON21(2,2), LAON31(1,1,2), 04630411
     2   LAON31(2,1,2), LAON11(7), LAON11(8)                            04640411
      IVCOMP = IRECN                                                    04650411
40080 IF (IVCOMP - 06)  20080, 10080, 20080                             04660411
30080 IVDELE = IVDELE + 1                                               04670411
      WRITE (I02,80000) IVTNUM                                          04680411
      IF (ICZERO) 10080, 0091, 20080                                    04690411
10080 IVPASS = IVPASS + 1                                               04700411
      WRITE (I02,80002) IVTNUM                                          04710411
      GO TO 0091                                                        04720411
20080 IVFAIL = IVFAIL + 1                                               04730411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          04740411
 0091 CONTINUE                                                          04750411
C                                                                       04760411
C     ****  FCVS PROGRAM 411  -  TEST 009  ****                         04770411
C                                                                       04780411
C                                                                       04790411
C        TEST 009 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM     04800411
C     IS AN ARRAY OF INTEGER TYPE.                                      04810411
C                                                                       04820411
C                                                                       04830411
      IVTNUM =   9                                                      04840411
      IF (ICZERO) 30090, 0090, 30090                                    04850411
 0090 CONTINUE                                                          04860411
      IRECN = 07                                                        04870411
      IVCORR = 07                                                       04880411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    04890411
     1   IAON31                                                         04900411
      IVCOMP = IRECN                                                    04910411
40090 IF (IVCOMP - 07)  20090, 10090, 20090                             04920411
30090 IVDELE = IVDELE + 1                                               04930411
      WRITE (I02,80000) IVTNUM                                          04940411
      IF (ICZERO) 10090, 0101, 20090                                    04950411
10090 IVPASS = IVPASS + 1                                               04960411
      WRITE (I02,80002) IVTNUM                                          04970411
      GO TO 0101                                                        04980411
20090 IVFAIL = IVFAIL + 1                                               04990411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          05000411
 0101 CONTINUE                                                          05010411
C                                                                       05020411
C     ****  FCVS PROGRAM 411  -  TEST 010  ****                         05030411
C                                                                       05040411
C                                                                       05050411
C        TEST 010 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM     05060411
C     IS AN ARRAY OF REAL TYPE.                                         05070411
C                                                                       05080411
C                                                                       05090411
      IVTNUM =  10                                                      05100411
      IF (ICZERO) 30100, 0100, 30100                                    05110411
 0100 CONTINUE                                                          05120411
      IRECN = 08                                                        05130411
      IVCORR = 08                                                       05140411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    05150411
     1   RAON31                                                         05160411
      IVCOMP = IRECN                                                    05170411
40100 IF (IVCOMP - 08)  20100, 10100, 20100                             05180411
30100 IVDELE = IVDELE + 1                                               05190411
      WRITE (I02,80000) IVTNUM                                          05200411
      IF (ICZERO) 10100, 0111, 20100                                    05210411
10100 IVPASS = IVPASS + 1                                               05220411
      WRITE (I02,80002) IVTNUM                                          05230411
      GO TO 0111                                                        05240411
20100 IVFAIL = IVFAIL + 1                                               05250411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          05260411
 0111 CONTINUE                                                          05270411
C                                                                       05280411
C     ****  FCVS PROGRAM 411  -  TEST 011  ****                         05290411
C                                                                       05300411
C                                                                       05310411
C        TEST 011 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM     05320411
C     IS AN ARRAY OF LOGICAL TYPE.                                      05330411
C                                                                       05340411
C                                                                       05350411
      IVTNUM =  11                                                      05360411
      IF (ICZERO) 30110, 0110, 30110                                    05370411
 0110 CONTINUE                                                          05380411
      IRECN = 09                                                        05390411
      IVCORR = 09                                                       05400411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    05410411
     1   LAON31                                                         05420411
      IVCOMP = IRECN                                                    05430411
40110 IF (IVCOMP - 09)  20110, 10110, 20110                             05440411
30110 IVDELE = IVDELE + 1                                               05450411
      WRITE (I02,80000) IVTNUM                                          05460411
      IF (ICZERO) 10110, 0121, 20110                                    05470411
10110 IVPASS = IVPASS + 1                                               05480411
      WRITE (I02,80002) IVTNUM                                          05490411
      GO TO 0121                                                        05500411
20110 IVFAIL = IVFAIL + 1                                               05510411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          05520411
 0121 CONTINUE                                                          05530411
C                                                                       05540411
C     ****  FCVS PROGRAM 411  -  TEST 012  ****                         05550411
C                                                                       05560411
C                                                                       05570411
C        TEST 012 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM     05580411
C     IS AN IMPLIED-DO   WITH AN ITEM OF INTEGER TYPE.                  05590411
C        THE FIELD VALUES ARE WRITTEN IN MIXED ORDER VIS-A-VIS THE      05600411
C     ELEMENT SEQUENCE OF ARRAY IAON31.  THE SEQUENCE OF VALUES WRITTEN 05610411
C     IN THE RECORD ARE 11, 512, 777, -32767, -11, -512, -777, 32767.   05620411
C                                                                       05630411
C                                                                       05640411
      IVTNUM =  12                                                      05650411
      IF (ICZERO) 30120, 0120, 30120                                    05660411
 0120 CONTINUE                                                          05670411
      IRECN = 10                                                        05680411
      IVCORR = 10                                                       05690411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    05700411
     1   (((IAON31 (J,K,I), I=1,2), K=1,2), J=1,2)                      05710411
      IVCOMP = IRECN                                                    05720411
40120 IF (IVCOMP - 10)  20120, 10120, 20120                             05730411
30120 IVDELE = IVDELE + 1                                               05740411
      WRITE (I02,80000) IVTNUM                                          05750411
      IF (ICZERO) 10120, 0131, 20120                                    05760411
10120 IVPASS = IVPASS + 1                                               05770411
      WRITE (I02,80002) IVTNUM                                          05780411
      GO TO 0131                                                        05790411
20120 IVFAIL = IVFAIL + 1                                               05800411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          05810411
 0131 CONTINUE                                                          05820411
C                                                                       05830411
C     ****  FCVS PROGRAM 411  -  TEST 013  ****                         05840411
C                                                                       05850411
C                                                                       05860411
C        TEST 013 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM     05870411
C     IS AN IMPLIED-DO WITH AN ITEM OF REAL TYPE.  THE FIELD VALUES     05880411
C     (IN FIELD POSITION ORDER) WRITTEN IN THE RECORD ARE 11., -11.,    05890411
C     7.77, -7.77, .512, -.512, -32767., 32767.                         05900411
C                                                                       05910411
C                                                                       05920411
      IVTNUM =  13                                                      05930411
      IF (ICZERO) 30130, 0130, 30130                                    05940411
 0130 CONTINUE                                                          05950411
      IRECN = 11                                                        05960411
      IVCORR = 11                                                       05970411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    05980411
     1   (((RAON31 (J,K,I), J=1,2), K=1,2), I=1,2)                      05990411
      IVCOMP = IRECN                                                    06000411
40130 IF (IVCOMP - 11)  20130, 10130, 20130                             06010411
30130 IVDELE = IVDELE + 1                                               06020411
      WRITE (I02,80000) IVTNUM                                          06030411
      IF (ICZERO) 10130, 0141, 20130                                    06040411
10130 IVPASS = IVPASS + 1                                               06050411
      WRITE (I02,80002) IVTNUM                                          06060411
      GO TO 0141                                                        06070411
20130 IVFAIL = IVFAIL + 1                                               06080411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          06090411
 0141 CONTINUE                                                          06100411
C                                                                       06110411
C     ****  FCVS PROGRAM 411  -  TEST 014  ****                         06120411
C                                                                       06130411
C                                                                       06140411
C        TEST 014 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM     06150411
C     IS AN IMPLIED-DO   WITH AN ITEM OF LOGICAL TYPE.                  06160411
C        THE FIELD VALUES ARE WRITTEN IN MIXED ORDER (AN ORDER          06170411
C     DIFFERENT THAN TEST 012 ABOVE) VIS-A-VIS THE                      06180411
C     ELEMENT SEQUENCE OF ARRAY LAON31.  THE SEQUENCE OF VALUES WRITTEN 06190411
C     IN THE RECORD ARE .TRUE., .TRUE., .FALSE., .FALSE., .TRUE., .TRUE.06200411
C     .FALSE, .FALSE.                                                   06210411
C                                                                       06220411
C                                                                       06230411
      IVTNUM =  14                                                      06240411
      IF (ICZERO) 30140, 0140, 30140                                    06250411
 0140 CONTINUE                                                          06260411
      IRECN = 12                                                        06270411
      IVCORR = 12                                                       06280411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    06290411
     1   (((LAON31 (J,K,I), K=1,2), J=1,2), I=1,2)                      06300411
      IVCOMP = IRECN                                                    06310411
40140 IF (IVCOMP - 12)  20140, 10140, 20140                             06320411
30140 IVDELE = IVDELE + 1                                               06330411
      WRITE (I02,80000) IVTNUM                                          06340411
      IF (ICZERO) 10140, 0151, 20140                                    06350411
10140 IVPASS = IVPASS + 1                                               06360411
      WRITE (I02,80002) IVTNUM                                          06370411
      GO TO 0151                                                        06380411
20140 IVFAIL = IVFAIL + 1                                               06390411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          06400411
 0151 CONTINUE                                                          06410411
C                                                                       06420411
C     ****  FCVS PROGRAM 411  -  TEST 015  ****                         06430411
C                                                                       06440411
C                                                                       06450411
C        TEST 015 USES A WRITE STATEMENT WITHOUT ANY OUTPUT LIST ITEMS. 06460411
C     THE OUTPUT LIST ITEMS ARE OPTIONAL.                               06470411
C     ALSO THE LENGTH OF AN UNFORMATTED RECORD MAY BE ZERO.             06480411
C                                                                       06490411
C                  SEE SECTIONS 12.1.2,   UNFORMATTED RECORDS           06500411
C                               12.8,  READ, WRITE AND PRINT STATEMENTS 06510411
C                                                                       06520411
C                                                                       06530411
      IVTNUM =  15                                                      06540411
      IF (ICZERO) 30150, 0150, 30150                                    06550411
 0150 CONTINUE                                                          06560411
      IRECN = 13                                                        06570411
      IVCORR = 13                                                       06580411
      WRITE (I04)                                                       06590411
      IVCOMP = IRECN                                                    06600411
40150 IF (IVCOMP - 13)  20150, 10150, 20150                             06610411
30150 IVDELE = IVDELE + 1                                               06620411
      WRITE (I02,80000) IVTNUM                                          06630411
      IF (ICZERO) 10150, 0161, 20150                                    06640411
10150 IVPASS = IVPASS + 1                                               06650411
      WRITE (I02,80002) IVTNUM                                          06660411
      GO TO 0161                                                        06670411
20150 IVFAIL = IVFAIL + 1                                               06680411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          06690411
 0161 CONTINUE                                                          06700411
C                                                                       06710411
C     ****  FCVS PROGRAM 411  -  TEST 016  ****                         06720411
C                                                                       06730411
C                                                                       06740411
C        TEST 016 IS SIMILAR  TO THE PREVIOUS TEST EXCEPT THE WRITE     06750411
C     STATEMENT CONTAINS OUTPUT LIST ITEMS.  ONE HUNDRED RECORDS ARE    06760411
C     WRITTEN.                                                          06770411
C                                                                       06780411
C                                                                       06790411
      IVTNUM =  16                                                      06800411
      IF (ICZERO) 30160, 0160, 30160                                    06810411
 0160 CONTINUE                                                          06820411
      IRECN = 13                                                        06830411
      DO 4132 I = 1,100                                                 06840411
      IRECN = IRECN + 1                                                 06850411
      WRITE (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,    06860411
     1   ICON21, ICON22, ICON31, ICON32, ICON33, ICON34, ICON55, ICON56 06870411
 4132 CONTINUE                                                          06880411
      IVCORR = 100                                                      06890411
      IVCOMP = IRECN - 13                                               06900411
40160 IF (IVCOMP - 100) 20160, 10160, 20160                             06910411
30160 IVDELE = IVDELE + 1                                               06920411
      WRITE (I02,80000) IVTNUM                                          06930411
      IF (ICZERO) 10160, 0171, 20160                                    06940411
10160 IVPASS = IVPASS + 1                                               06950411
      WRITE (I02,80002) IVTNUM                                          06960411
      GO TO 0171                                                        06970411
20160 IVFAIL = IVFAIL + 1                                               06980411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          06990411
 0171 CONTINUE                                                          07000411
C                                                                       07010411
C                                                                       07020411
C        THE NEXT THREE TESTS TEST  USE OF THE BACKSPACE AND ENDFILE    07030411
C     STATEMENTS                                                        07040411
C                                                                       07050411
C                                                                       07060411
C                                                                       07070411
C     ****  FCVS PROGRAM 411  -  TEST 017  ****                         07080411
C                                                                       07090411
C        TEST 017 USES AN ENDFILE STATEMENT TO WRITE AN ENDFILE         07100411
C     RECORD  TO  A  FILE WITH UNFORMATTED RECORDS.  AFTER EXECUTION    07110411
C     OF THIS STATEMENT THE FILE SHOULD BE POSITION AFTER THE ENDFILE   07120411
C     RECORD.                                                           07130411
C                                                                       07140411
C                                                                       07150411
      IVTNUM =  17                                                      07160411
      IF (ICZERO) 30170, 0170, 30170                                    07170411
 0170 CONTINUE                                                          07180411
      IVCORR = 1                                                        07190411
      IVCOMP = 0                                                        07200411
 0172 ENDFILE I04                                                       07210411
      IVCOMP = 1                                                        07220411
40170 IF (IVCOMP - 1)  20170, 10170, 20170                              07230411
C                                                                       07240411
30170 IVDELE = IVDELE + 1                                               07250411
      WRITE (I02,80000) IVTNUM                                          07260411
      IF (ICZERO) 10170, 0181, 20170                                    07270411
10170 IVPASS = IVPASS + 1                                               07280411
      WRITE (I02,80002) IVTNUM                                          07290411
      GO TO 0181                                                        07300411
20170 IVFAIL = IVFAIL + 1                                               07310411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          07320411
 0181 CONTINUE                                                          07330411
C                                                                       07340411
C     ****  FCVS PROGRAM 411  -  TEST 018  ****                         07350411
C                                                                       07360411
C                                                                       07370411
C        TEST 018 USES THE BACKSPACE STATEMENT TO REPOSITION THE FILE   07380411
C     BEFORE THE ENDFILE RECORD.                                        07390411
C                                                                       07400411
C                  SEE SECTIONS 12.10.4.1,  BACKSPACE STATEMENT         07410411
C                               12.10.4.2,  ENDFILE STATEMENT           07420411
C                                                                       07430411
C                                                                       07440411
      IVTNUM =  18                                                      07450411
      IF (ICZERO) 30180, 0180, 30180                                    07460411
 0180 CONTINUE                                                          07470411
      IVCORR = 1                                                        07480411
      IVCOMP = 0                                                        07490411
      BACKSPACE I04                                                     07500411
      IVCOMP = 1                                                        07510411
40180 IF (IVCOMP - 1)  20180, 10180, 20180                              07520411
30180 IVDELE = IVDELE + 1                                               07530411
      WRITE (I02,80000) IVTNUM                                          07540411
      IF (ICZERO) 10180, 0191, 20180                                    07550411
10180 IVPASS = IVPASS + 1                                               07560411
      WRITE (I02,80002) IVTNUM                                          07570411
      GO TO 0191                                                        07580411
20180 IVFAIL = IVFAIL + 1                                               07590411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          07600411
 0191 CONTINUE                                                          07610411
C                                                                       07620411
C     ****  FCVS PROGRAM 411  -  TEST 019  ****                         07630411
C                                                                       07640411
C                                                                       07650411
C        TEST 019 IS A CONTINUATION OF THE ENDFILE AND BACKSPACE TESTS  07660411
C     (TWO PREVIOUS TESTS).  THIS TEST CONTINUES WRITTING RECORDS TO THE07670411
C     FILE OVER THE ENDFILE RECORD PREVIOUSLY WRITTEN IN TEST 017.      07680411
C     TWENTY EIGHT RECORDS ARE WRITTEN TO THE FILE FOLLOWED BY AN       07690411
C     ENDFILE.                                                          07700411
C                                                                       07710411
C                                                                       07720411
      IVTNUM =  19                                                      07730411
      IF (ICZERO) 30190, 0190, 30190                                    07740411
 0190 CONTINUE                                                          07750411
      IVCOMP = 0                                                        07760411
      IRECN = 113                                                       07770411
      DO 4112 I = 1,28                                                  07780411
      IRECN = IRECN + 1                                                 07790411
      WRITE (I04)   IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,            07800411
     1   ICON21, ICON22, ICON31, ICON32, ICON33, ICON34, ICON55, ICON56 07810411
      IVCOMP = IVCOMP + 1                                               07820411
 4112 CONTINUE                                                          07830411
      IVCORR = 29                                                       07840411
      IEOF =  9999                                                      07850411
      IRECN = IRECN + 1                                                 07860411
      WRITE (I04)   IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF             07870411
      IVCOMP = IVCOMP + 1                                               07880411
      ENDFILE I04                                                       07890411
C                                                                       07900411
C        THERE SHOULD BE A TOTAL OF 142 RECORDS PLUS AN ENDFILE RECORD  07910411
C     IN THE FILE AFTER EXECUTION OF THIS TEST.                         07920411
C                                                                       07930411
40190 IF (IVCOMP - 29) 20190, 10190, 20190                              07940411
30190 IVDELE = IVDELE + 1                                               07950411
      WRITE (I02,80000) IVTNUM                                          07960411
      IF (ICZERO) 10190, 0201, 20190                                    07970411
10190 IVPASS = IVPASS + 1                                               07980411
      WRITE (I02,80002) IVTNUM                                          07990411
      GO TO 0201                                                        08000411
20190 IVFAIL = IVFAIL + 1                                               08010411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          08020411
 0201 CONTINUE                                                          08030411
C                                                                       08040411
C                                                                       08050411
C     THE NEXT SERIES OF TESTS READ AND CHECK THE RECORDS CREATED IN    08060411
C     TESTS 03  THROUGH 019.  EACH OF THE TESTS IN THIS SET IS CHECKING 08070411
C     TWO THINGS.  FIRST, THAT THE READ STATEMENT CONSTRUCT IS ACCEPTED 08080411
C     BY THE COMPILER AND SECOND THAT THE RECORDS CREATED IN TESTS 003  08090411
C     THROUGH 019 AND READ IN THESE TESTS CAN GIVE PREDICTIBLE VALUES.  08100411
C     THE READ STATEMENT IS USED WITH THE I/O LIST ITEMS AS A VARIABLE, 08110411
C     AN ARRAY ELEMENT AND AN ARRAY.                                    08120411
C                                                                       08130411
C                                                                       08140411
C                                                                       08150411
C     ****  FCVS PROGRAM 411  -  TEST 020  ****                         08160411
C                                                                       08170411
C                                                                       08180411
C        TEST 020 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A  08190411
C     VARIABLE OF INTEGER TYPE.                                         08200411
C                                                                       08210411
C                                                                       08220411
      IVTNUM =  20                                                      08230411
      IF (ICZERO) 30200, 0200, 30200                                    08240411
 0200 CONTINUE                                                          08250411
      REWIND I04                                                        08260411
C        REPOSITION THE FILE TO THE FIRST RECORD                        08270411
      IVON22 = 0                                                        08280411
      IVON56 = 0                                                        08290411
      IVCORR = 30                                                       08300411
      IVCOMP = 1                                                        08310411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     08320411
     1   IVON21, IVON22, IVON31, IVON32, IVON33, IVON34, IVON55, IVON56 08330411
      IF (IRECN .EQ. 01)     IVCOMP = IVCOMP * 2                        08340411
      IF (IVON22 .EQ. -11)   IVCOMP = IVCOMP * 3                        08350411
      IF (IVON56 .EQ. 32767) IVCOMP = IVCOMP * 5                        08360411
40200 IF (IVCOMP - 30)  20200, 10200, 20200                             08370411
30200 IVDELE = IVDELE + 1                                               08380411
      WRITE (I02,80000) IVTNUM                                          08390411
      IF (ICZERO) 10200, 0211, 20200                                    08400411
10200 IVPASS = IVPASS + 1                                               08410411
      WRITE (I02,80002) IVTNUM                                          08420411
      GO TO 0211                                                        08430411
20200 IVFAIL = IVFAIL + 1                                               08440411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          08450411
 0211 CONTINUE                                                          08460411
C                                                                       08470411
C     ****  FCVS PROGRAM 411  -  TEST 021  ****                         08480411
C                                                                       08490411
C                                                                       08500411
C        TEST 021 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A  08510411
C     VARIABLE OF REAL TYPE.                                            08520411
C                                                                       08530411
C                                                                       08540411
      IVTNUM =  21                                                      08550411
      IF (ICZERO) 30210, 0210, 30210                                    08560411
 0210 CONTINUE                                                          08570411
      RVON22 = 0.0                                                      08580411
      RVON31 = 0.0                                                      08590411
      IVCORR = 30                                                       08600411
      IVCOMP = 1                                                        08610411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     08620411
     1   RVON21, RVON22, RVON31, RVON32, RVON33, RVON34, RVON55, RVON56 08630411
      IF (IRECN .EQ. 02)      IVCOMP = IVCOMP * 2                       08640411
      IF (RVON22 .EQ. -11.)  IVCOMP = IVCOMP * 3                        08650411
      IF (RVON31 .EQ. 7.77)  IVCOMP = IVCOMP * 5                        08660411
40210 IF (IVCOMP - 30)  20210, 10210, 20210                             08670411
30210 IVDELE = IVDELE + 1                                               08680411
      WRITE (I02,80000) IVTNUM                                          08690411
      IF (ICZERO) 10210, 0221, 20210                                    08700411
10210 IVPASS = IVPASS + 1                                               08710411
      WRITE (I02,80002) IVTNUM                                          08720411
      GO TO 0221                                                        08730411
20210 IVFAIL = IVFAIL + 1                                               08740411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          08750411
 0221 CONTINUE                                                          08760411
C                                                                       08770411
C     ****  FCVS PROGRAM 411  -  TEST 022  ****                         08780411
C                                                                       08790411
C                                                                       08800411
C        TEST 022 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A  08810411
C     VARIABLE OF LOGICAL TYPE.                                         08820411
C                                                                       08830411
C                                                                       08840411
      IVTNUM =  22                                                      08850411
      IF (ICZERO) 30220, 0220, 30220                                    08860411
 0220 CONTINUE                                                          08870411
      LVONT1 = .FALSE.                                                  08880411
      LVONF6 = .TRUE.                                                   08890411
      IVCORR = 30                                                       08900411
      IVCOMP = 1                                                        08910411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     08920411
     1   LVONT1, LVONF2,  LVONT3, LVONF4, LVONT5, LVONF6, LVONT7, LVONF808930411
      IF (IRECN .EQ. 03)     IVCOMP = IVCOMP * 2                        08940411
      IF (.NOT. LVONF6)      IVCOMP = IVCOMP * 3                        08950411
      IF (LVONT1)            IVCOMP = IVCOMP * 5                        08960411
40220 IF (IVCOMP - 30)  20220, 10220, 20220                             08970411
30220 IVDELE = IVDELE + 1                                               08980411
      WRITE (I02,80000) IVTNUM                                          08990411
      IF (ICZERO) 10220, 0231, 20220                                    09000411
10220 IVPASS = IVPASS + 1                                               09010411
      WRITE (I02,80002) IVTNUM                                          09020411
      GO TO 0231                                                        09030411
20220 IVFAIL = IVFAIL + 1                                               09040411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          09050411
 0231 CONTINUE                                                          09060411
C                                                                       09070411
C     ****  FCVS PROGRAM 411  -  TEST 023  ****                         09080411
C                                                                       09090411
C                                                                       09100411
C        TEST 023 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A  09110411
C     ARRAY ELEMENT OF INTEGER TYPE.  ONE, TWO, AND THREE               09120411
C     DIMENSION ARRAYS ARE USED.                                        09130411
C                                                                       09140411
C                                                                       09150411
      IVTNUM =  23                                                      09160411
      IF (ICZERO) 30230, 0230, 30230                                    09170411
 0230 CONTINUE                                                          09180411
      IAON12(2) = 0                                                     09190411
      IAON12(8) = 0                                                     09200411
      IVCORR = 30                                                       09210411
      IVCOMP = 1                                                        09220411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     09230411
     1   IAON12(1), IAON12(2), IAON22(1,2), IAON22(2,2), IAON32(1,1,2), 09240411
     2   IAON32(2,1,2), IAON12(7), IAON12(8)                            09250411
      IF (IRECN .EQ. 04)   IVCOMP = IVCOMP * 2                          09260411
      IF (IAON12(2) .EQ. -11)   IVCOMP = IVCOMP * 3                     09270411
      IF (IAON12(8) .EQ. 32767) IVCOMP = IVCOMP * 5                     09280411
C                                                                       09290411
C        THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER,  A NEGATIVE 09300411
C     FIELD VALUE AND A POSITIVE FIELD VALUE.                           09310411
C                                                                       09320411
40230 IF (IVCOMP - 30)   20230, 10230, 20230                            09330411
30230 IVDELE = IVDELE + 1                                               09340411
      WRITE (I02,80000) IVTNUM                                          09350411
      IF (ICZERO) 10230, 0241, 20230                                    09360411
10230 IVPASS = IVPASS + 1                                               09370411
      WRITE (I02,80002) IVTNUM                                          09380411
      GO TO 0241                                                        09390411
20230 IVFAIL = IVFAIL + 1                                               09400411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          09410411
 0241 CONTINUE                                                          09420411
C                                                                       09430411
C     ****  FCVS PROGRAM 411  -  TEST 024  ****                         09440411
C                                                                       09450411
C                                                                       09460411
C        TEST 024 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A  09470411
C     ARRAY ELEMENT OF REAL TYPE.  ONE, TWO, AND THREE                  09480411
C     DIMENSION ARRAYS ARE USED.                                        09490411
C                                                                       09500411
C                                                                       09510411
      IVTNUM =  24                                                      09520411
      IF (ICZERO) 30240, 0240, 30240                                    09530411
 0240 CONTINUE                                                          09540411
      RAON22(2,2) = 0.0                                                 09550411
      RAON32(1,1,2) = 0.0                                               09560411
      IVCORR = 30                                                       09570411
      IVCOMP = 1                                                        09580411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     09590411
     1   RAON12(1), RAON12(2), RAON22(1,2), RAON22(2,2), RAON32(1,1,2), 09600411
     2   RAON32(2,1,2), RAON12(7), RAON12(8)                            09610411
      IF (IRECN .EQ. 05)             IVCOMP = IVCOMP * 2                09620411
      IF (RAON22(2,2) .EQ. -7.77)    IVCOMP = IVCOMP * 3                09630411
      IF (RAON32(1,1,2) .EQ.  .512 ) IVCOMP = IVCOMP * 5                09640411
C                                                                       09650411
C        THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER,  A NEGATIVE 09660411
C     FIELD VALUE AND A POSITIVE FIELD VALUE.                           09670411
C                                                                       09680411
40240 IF (IVCOMP - 30)   20240, 10240, 20240                            09690411
30240 IVDELE = IVDELE + 1                                               09700411
      WRITE (I02,80000) IVTNUM                                          09710411
      IF (ICZERO) 10240, 0251, 20240                                    09720411
10240 IVPASS = IVPASS + 1                                               09730411
      WRITE (I02,80002) IVTNUM                                          09740411
      GO TO 0251                                                        09750411
20240 IVFAIL = IVFAIL + 1                                               09760411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          09770411
 0251 CONTINUE                                                          09780411
C                                                                       09790411
C     ****  FCVS PROGRAM 411  -  TEST 025  ****                         09800411
C                                                                       09810411
C                                                                       09820411
C        TEST 025 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A  09830411
C     ARRAY ELEMENT OF LOGICAL TYPE.  ONE, TWO, AND THREE               09840411
C     DIMENSION ARRAYS ARE USED.                                        09850411
C                                                                       09860411
C                                                                       09870411
C                                                                       09880411
      IVTNUM =  25                                                      09890411
      IF (ICZERO) 30250, 0250, 30250                                    09900411
 0250 CONTINUE                                                          09910411
      LAON12(1) = .FALSE.                                               09920411
      LAON32(2,1,2) = .TRUE.                                            09930411
      IVCORR = 30                                                       09940411
      IVCOMP = 1                                                        09950411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     09960411
     1   LAON12(1), LAON12(2), LAON22(1,2), LAON22(2,2), LAON32(1,1,2), 09970411
     2   LAON32(2,1,2), LAON12(7), LAON12(8)                            09980411
      IF (IRECN .EQ. 06)   IVCOMP = IVCOMP * 2                          09990411
      IF (LAON12(1))          IVCOMP = IVCOMP * 3                       10000411
      IF (.NOT. LAON32(2,1,2))  IVCOMP = IVCOMP * 5                     10010411
40250 IF (IVCOMP - 30)   20250, 10250, 20250                            10020411
30250 IVDELE = IVDELE + 1                                               10030411
      WRITE (I02,80000) IVTNUM                                          10040411
      IF (ICZERO) 10250, 0261, 20250                                    10050411
10250 IVPASS = IVPASS + 1                                               10060411
      WRITE (I02,80002) IVTNUM                                          10070411
      GO TO 0261                                                        10080411
20250 IVFAIL = IVFAIL + 1                                               10090411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          10100411
 0261 CONTINUE                                                          10110411
C                                                                       10120411
C     ****  FCVS PROGRAM 411  -  TEST 026  ****                         10130411
C                                                                       10140411
C                                                                       10150411
C        TEST 026 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A  10160411
C     ARRAY OF INTEGER TYPE.                                            10170411
C                                                                       10180411
C                                                                       10190411
      IVTNUM =  26                                                      10200411
      IF (ICZERO) 30260, 0260, 30260                                    10210411
 0260 CONTINUE                                                          10220411
      IAON32(2,1,1) = 0                                                 10230411
      IAON32(2,2,2) = 0                                                 10240411
      IVCORR = 30                                                       10250411
      IVCOMP = 1                                                        10260411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     10270411
     1   IAON32                                                         10280411
      IF (IRECN .EQ. 07)   IVCOMP = IVCOMP * 2                          10290411
      IF (IAON32(2,1,1) .EQ. -11)    IVCOMP = IVCOMP * 3                10300411
      IF (IAON32(2,2,2) .EQ. 32767)  IVCOMP = IVCOMP * 5                10310411
C                                                                       10320411
C        THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER,  A NEGATIVE 10330411
C     FIELD VALUE AND A POSITIVE FIELD VALUE.                           10340411
C                                                                       10350411
40260 IF (IVCOMP - 30)   20260, 10260, 20260                            10360411
30260 IVDELE = IVDELE + 1                                               10370411
      WRITE (I02,80000) IVTNUM                                          10380411
      IF (ICZERO) 10260, 0271, 20260                                    10390411
10260 IVPASS = IVPASS + 1                                               10400411
      WRITE (I02,80002) IVTNUM                                          10410411
      GO TO 0271                                                        10420411
20260 IVFAIL = IVFAIL + 1                                               10430411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          10440411
 0271 CONTINUE                                                          10450411
C                                                                       10460411
C     ****  FCVS PROGRAM 411  -  TEST 027  ****                         10470411
C                                                                       10480411
C                                                                       10490411
C        TEST 027 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A  10500411
C     ARRAY OF REAL TYPE.                                               10510411
C                                                                       10520411
C                                                                       10530411
      IVTNUM =  27                                                      10540411
      IF (ICZERO) 30270, 0270, 30270                                    10550411
 0270 CONTINUE                                                          10560411
      RAON32(2,1,1) = 0.0                                               10570411
      RAON32(2,2,2) = 0.0                                               10580411
      IVCORR = 30                                                       10590411
      IVCOMP = 1                                                        10600411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     10610411
     1   RAON32                                                         10620411
      IF (IRECN .EQ. 08)   IVCOMP = IVCOMP * 2                          10630411
      IF (RAON32(2,1,1) .EQ. -11.)   IVCOMP = IVCOMP * 3                10640411
      IF (RAON32(2,2,2) .EQ.  32767.) IVCOMP = IVCOMP * 5               10650411
C                                                                       10660411
C        THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER,  A NEGATIVE 10670411
C     FIELD VALUE AND A POSITIVE FIELD VALUE.                           10680411
C                                                                       10690411
40270 IF (IVCOMP - 30)   20270, 10270, 20270                            10700411
30270 IVDELE = IVDELE + 1                                               10710411
      WRITE (I02,80000) IVTNUM                                          10720411
      IF (ICZERO) 10270, 0281, 20270                                    10730411
10270 IVPASS = IVPASS + 1                                               10740411
      WRITE (I02,80002) IVTNUM                                          10750411
      GO TO 0281                                                        10760411
20270 IVFAIL = IVFAIL + 1                                               10770411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          10780411
 0281 CONTINUE                                                          10790411
C                                                                       10800411
C     ****  FCVS PROGRAM 411  -  TEST 028  ****                         10810411
C                                                                       10820411
C                                                                       10830411
C        TEST 028 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A  10840411
C     ARRAY OF LOGICAL TYPE.                                            10850411
C                                                                       10860411
C                                                                       10870411
      IVTNUM =  28                                                      10880411
      IF (ICZERO) 30280, 0280, 30280                                    10890411
 0280 CONTINUE                                                          10900411
      LAON32(1,1,1) = .FALSE.                                           10910411
      LAON32(2,2,2) = .TRUE.                                            10920411
      IVCORR = 30                                                       10930411
      IVCOMP = 1                                                        10940411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     10950411
     1   LAON32                                                         10960411
      IF (IRECN .EQ. 09)   IVCOMP = IVCOMP * 2                          10970411
      IF (LAON32(1,1,1))     IVCOMP = IVCOMP * 3                        10980411
      IF (.NOT. LAON32(2,2,2))    IVCOMP = IVCOMP * 5                   10990411
40280 IF (IVCOMP - 30)   20280, 10280, 20280                            11000411
30280 IVDELE = IVDELE + 1                                               11010411
      WRITE (I02,80000) IVTNUM                                          11020411
      IF (ICZERO) 10280, 0291, 20280                                    11030411
10280 IVPASS = IVPASS + 1                                               11040411
      WRITE (I02,80002) IVTNUM                                          11050411
      GO TO 0291                                                        11060411
20280 IVFAIL = IVFAIL + 1                                               11070411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          11080411
 0291 CONTINUE                                                          11090411
C                                                                       11100411
C     ****  FCVS PROGRAM 411  -  TEST 029  ****                         11110411
C                                                                       11120411
C                                                                       11130411
C        TEST 029 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A  11140411
C     IMPLIED-DO WITH AN ITEM OF INTEGER TYPE.  THE STORAGE VALUES IN   11150411
C     THE ARRAY (BY THE IMPLIED-DO DURING THE READ) SHOULD RESULT IN A  11160411
C     DIFFERENT STORAGE SEQUENCE IN THE ARRAY THAN FOUND IN THE RECORD  11170411
C     OF THE FILE.  THIS RECORD IS RECORD NUMBER 10 AND WAS CREATED IN  11180411
C     TEST 012 ABOVE.  THE FIELD VALUE, FIELD POSITION, POSITION WITHIN 11190411
C     ARRAY IAON32 AND SUBSCRIPT VALUE AFTER THE READ IS                11200411
C                                                                       11210411
C      VALUE      11    777     512  -32767   -11   -777   -512   32767 11220411
C      FIELD POS   1      3      2      4      5      7      6      8   11230411
C      IAON32      1      2      3      4      5      6      7      8   11240411
C      SUBSCRIPT 1,1,1   2,1,1  1,2,1  2,2,1  1,1,2  2,1,2  1,2,2  2,2,211250411
C                                                                       11260411
C                                                                       11270411
      IVTNUM =  29                                                      11280411
      IF (ICZERO) 30290, 0290, 30290                                    11290411
 0290 CONTINUE                                                          11300411
      IAON32(2,1,1) = 0                                                 11310411
      IAON32(2,2,1) = 0                                                 11320411
      IVCORR = 30                                                       11330411
      IVCOMP = 1                                                        11340411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     11350411
     1   (((IAON32 (J,K,I), K=1,2), J=1,2), I=1,2)                      11360411
      IF (IRECN .EQ. 10)   IVCOMP = IVCOMP * 2                          11370411
      IF (IAON32(2,1,1) .EQ. 777)      IVCOMP = IVCOMP * 3              11380411
      IF (IAON32(2,2,1) .EQ. -32767)   IVCOMP = IVCOMP * 5              11390411
C                                                                       11400411
C        THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER,  A NEGATIVE 11410411
C     FIELD VALUE AND A POSITIVE FIELD VALUE.                           11420411
C                                                                       11430411
40290 IF (IVCOMP - 30)   20290, 10290, 20290                            11440411
30290 IVDELE = IVDELE + 1                                               11450411
      WRITE (I02,80000) IVTNUM                                          11460411
      IF (ICZERO) 10290, 0301, 20290                                    11470411
10290 IVPASS = IVPASS + 1                                               11480411
      WRITE (I02,80002) IVTNUM                                          11490411
      GO TO 0301                                                        11500411
20290 IVFAIL = IVFAIL + 1                                               11510411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          11520411
 0301 CONTINUE                                                          11530411
C                                                                       11540411
C     ****  FCVS PROGRAM 411  -  TEST 030  ****                         11550411
C                                                                       11560411
C                                                                       11570411
C        TEST 030 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A  11580411
C     IMPLIED-DO WITH AN ITEM OF REAL    TYPE.  THE STORAGE VALUES IN   11590411
C     THE ARRAY (BY THE IMPLIED-DO DURING THE READ) SHOULD RESULT IN A  11600411
C     SEQUENCE THE SAME AS FOUND IN THE RECORD OF THE FILE.  THIS REC-  11610411
C     ORD IS RECORD NUMBER 011 AND WAS CREATED IN TEST 013 ABOVE.       11620411
C     THE FIELD VALUE, FIELD POSITION, POSITION WITHIN ARRAY RAON32  AND11630411
C     SUBSCRIPT VALUE AFTER THE THE READ IS                             11640411
C                                                                       11650411
C      VALUE      11.   -11.   7.77   -7.77  .512   -.512 -32767. 32767.11660411
C      FIELD POS   1      2      3      4      5      6      7      8   11670411
C      RAON32      1      2      3      4      5      6      7      8   11680411
C      SUBSCRIPT 1,1,1   2,1,1  1,2,1  2,2,1  1,1,2  2,1,2  1,2,2  2,2,211690411
C                                                                       11700411
C                                                                       11710411
      IVTNUM =  30                                                      11720411
      IF (ICZERO) 30300, 0300, 30300                                    11730411
 0300 CONTINUE                                                          11740411
      RAON32(1,2,1) = 0.0                                               11750411
      RAON32(1,2,2) = 0.0                                               11760411
      IVCORR = 30                                                       11770411
      IVCOMP = 1                                                        11780411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     11790411
     1   (((RAON32 (J,K,I), J=1,2), K=1,2), I=1,2)                      11800411
      IF (IRECN .EQ. 11)   IVCOMP = IVCOMP * 2                          11810411
      IF (RAON32(1,2,1) .EQ. 7.77)     IVCOMP = IVCOMP * 3              11820411
      IF (RAON32(1,2,2) .EQ. -32767.)  IVCOMP = IVCOMP * 5              11830411
C                                                                       11840411
C        THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER,  A NEGATIVE 11850411
C     FIELD VALUE AND A POSITIVE FIELD VALUE.                           11860411
C                                                                       11870411
40300 IF (IVCOMP - 30)   20300, 10300, 20300                            11880411
30300 IVDELE = IVDELE + 1                                               11890411
      WRITE (I02,80000) IVTNUM                                          11900411
      IF (ICZERO) 10300, 0311, 20300                                    11910411
10300 IVPASS = IVPASS + 1                                               11920411
      WRITE (I02,80002) IVTNUM                                          11930411
      GO TO 0311                                                        11940411
20300 IVFAIL = IVFAIL + 1                                               11950411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          11960411
 0311 CONTINUE                                                          11970411
C                                                                       11980411
C     ****  FCVS PROGRAM 411  -  TEST 031  ****                         11990411
C                                                                       12000411
C                                                                       12010411
C        TEST 031 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A  12020411
C     IMPLIED-DO WITH AN ITEM OF LOGICAL TYPE.  THE STORAGE VALUES IN   12030411
C     THE ARRAY (BY THE IMPLIED-DO DURING THE READ) SHOULD RESULT IN A  12040411
C     DIFFERENT STORAGE SEQUENCE IN THE ARRAY THAN FOUND IN THE RECORD  12050411
C     OF THE FILE.  THIS RECORD IS RECORD NUMBER 12 AND WAS CREATED IN  12060411
C     TEST 014 ABOVE.  THE FIELD VALUE, FIELD POSITION, POSITION WITHIN 12070411
C     ARRAY LAON32 AND SUBSCRIPT VALUE AFTER THE READ IS                12080411
C                                                                       12090411
C      VALUE       T      T      F      F      T       T     F      F   12100411
C      FIELD POS   1      5      3      7       2      6     4      8   12110411
C      LAON32      1      2      3      4      5      6      7      8   12120411
C      SUBSCRIPT 1,1,1   2,1,1  1,2,1  2,2,1  1,1,2  2,1,2  1,2,2  2,2,212130411
C                                                                       12140411
C                                                                       12150411
      IVTNUM =  31                                                      12160411
      IF (ICZERO) 30310, 0310, 30310                                    12170411
 0310 CONTINUE                                                          12180411
      LAON32(1,2,1) = .TRUE.                                            12190411
      LAON32(2,1,1) = .FALSE.                                           12200411
      IVCORR = 30                                                       12210411
      IVCOMP = 1                                                        12220411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     12230411
     1   (((LAON32 (J,K,I), I=1,2), K=1,2), J=1,2)                      12240411
      IF (IRECN .EQ. 12)   IVCOMP = IVCOMP * 2                          12250411
      IF ( .NOT. LAON32(1,2,1))   IVCOMP = IVCOMP * 3                   12260411
      IF (LAON32(2,1,1))          IVCOMP = IVCOMP * 5                   12270411
40310 IF (IVCOMP - 30)   20310, 10310, 20310                            12280411
30310 IVDELE = IVDELE + 1                                               12290411
      WRITE (I02,80000) IVTNUM                                          12300411
      IF (ICZERO) 10310, 0321, 20310                                    12310411
10310 IVPASS = IVPASS + 1                                               12320411
      WRITE (I02,80002) IVTNUM                                          12330411
      GO TO 0321                                                        12340411
20310 IVFAIL = IVFAIL + 1                                               12350411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          12360411
 0321 CONTINUE                                                          12370411
C                                                                       12380411
C     ****  FCVS PROGRAM 411  -  TEST 032  ****                         12390411
C                                                                       12400411
C                                                                       12410411
C        TEST 032 USES A READ STATEMENT WITHOUT ANY INPUT LIST ITEMS    12420411
C     (INPUT LIST ITEMS ARE OPTIONAL FOR THE READ STATEMENT). THIS      12430411
C     RECORD WAS WRITTEN IN TEST 15 AND SHOULD BE RECORD NUMBER 13.     12440411
C     THE PURPOSE OF THIS TEST IS TO SEE THAT THE STATEMENT CONSTRUCT   12450411
C     IS ACCEPTABLE TO THE COMPILER.                                    12460411
C     ALSO THE LENGTH OF AN UNFORMATTED RECORD MAY BE ZERO.             12470411
C                                                                       12480411
C                  SEE SECTIONS 12.1.2,   UNFORMATTED RECORDS           12490411
C                               12.8,   READ, WRITE AND PRINT STATEMENTS12500411
C                                                                       12510411
C                                                                       12520411
      IVTNUM =  32                                                      12530411
      IF (ICZERO) 30320, 0320, 30320                                    12540411
 0320 CONTINUE                                                          12550411
      IRECN = 13                                                        12560411
      IVCORR = 13                                                       12570411
      READ (I04)                                                        12580411
      IVCOMP = IRECN                                                    12590411
40320 IF (IVCOMP - 13)   20320, 10320, 20320                            12600411
30320 IVDELE = IVDELE + 1                                               12610411
      WRITE (I02,80000) IVTNUM                                          12620411
      IF (ICZERO) 10320, 0331, 20320                                    12630411
10320 IVPASS = IVPASS + 1                                               12640411
      WRITE (I02,80002) IVTNUM                                          12650411
      GO TO 0331                                                        12660411
20320 IVFAIL = IVFAIL + 1                                               12670411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          12680411
 0331 CONTINUE                                                          12690411
C                                                                       12700411
C     ****  FCVS PROGRAM 411  -  TEST 033  ****                         12710411
C                                                                       12720411
C                                                                       12730411
C        TEST 033 USES A READ STATEMENT IN WHICH THE NUMBER OF VALUES   12740411
C     REQUIRED BY THE INPUT LIST IS LESS THAN THE NUMBER OF VALUES IN   12750411
C     THE RECORD.  THIS TEST READS RECORD NUMBER 14 WHICH WAS CREATED   12760411
C     IN TEST 016.                                                      12770411
C                                                                       12780411
C                  SEE SECTION 12.9.5.1, UNFORMATED DATA TRANSFER       12790411
C                                                                       12800411
C                                                                       12810411
      IVTNUM =  33                                                      12820411
      IF (ICZERO) 30330, 0330, 30330                                    12830411
 0330 CONTINUE                                                          12840411
      IVON21 = 0                                                        12850411
      IVON22 = 0                                                        12860411
      IVON31 = 0                                                        12870411
      IVCORR = 0                                                        12880411
      IVCOMP = 1                                                        12890411
      READ (I04)           IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,     12900411
     1       IVON21, IVON22, IVON31                                     12910411
      IF (IRECN .EQ. 14)  IVCOMP = IVCOMP * 2                           12920411
      IF (IVON21 .EQ. 11)  IVCOMP = IVCOMP * 3                          12930411
      IF (IVON22 .EQ. -11) IVCOMP = IVCOMP * 5                          12940411
40330 IF (IVCOMP - 30) 20330, 10330, 20330                              12950411
30330 IVDELE = IVDELE + 1                                               12960411
      WRITE (I02,80000) IVTNUM                                          12970411
      IF (ICZERO) 10330, 0341, 20330                                    12980411
10330 IVPASS = IVPASS + 1                                               12990411
      WRITE (I02,80002) IVTNUM                                          13000411
      GO TO 0341                                                        13010411
20330 IVFAIL = IVFAIL + 1                                               13020411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          13030411
 0341 CONTINUE                                                          13040411
C                                                                       13050411
C                                                                       13060411
C        THE FOLLOWING TWO TESTS USE THE READ STATEMENT WITH THE        13070411
C     END SPECIFIER.                                                    13080411
C                                                                       13090411
C                                                                       13100411
C                                                                       13110411
C     ****  FCVS PROGRAM 411  -  TEST 034  ****                         13120411
C                                                                       13130411
C                                                                       13140411
C        TEST 034 USES THE READ STATEMENT WITHOUT ANY I/O LIST ITEMS.   13150411
C     THE FILE IS READ UNTIL AN END-OF-FILE CONDITION OCCURS.           13160411
C                                                                       13170411
      IVTNUM =  34                                                      13180411
      IF (ICZERO) 30340, 0340, 30340                                    13190411
 0340 CONTINUE                                                          13200411
      REWIND I04                                                        13210411
C                                                                       13220411
      IVCOMP = 1                                                        13230411
      IVON01 = 0                                                        13240411
      IVCORR = 6                                                        13250411
      DO 0342 I=1,150                                                   13260411
      READ (I04, END = 0343)                                            13270411
      IVON01 = IVON01 + 1                                               13280411
      IF (IVON01 .GT. 150)  GO TO 40340                                 13290411
 0342 CONTINUE                                                          13300411
      GO TO 40340                                                       13310411
 0343 IVCOMP = IVCOMP * 2                                               13320411
      IF (IVON01 .EQ. 142)   IVCOMP = IVCOMP * 3                        13330411
40340 IF (IVCOMP - 6) 20340, 10340, 20340                               13340411
30340 IVDELE = IVDELE + 1                                               13350411
      WRITE (I02,80000) IVTNUM                                          13360411
      IF (ICZERO) 10340, 0351, 20340                                    13370411
10340 IVPASS = IVPASS + 1                                               13380411
      WRITE (I02,80002) IVTNUM                                          13390411
      GO TO 0351                                                        13400411
20340 IVFAIL = IVFAIL + 1                                               13410411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          13420411
 0351 CONTINUE                                                          13430411
C                                                                       13440411
C     ****  FCVS PROGRAM 411  -  TEST 035  ****                         13450411
C                                                                       13460411
C                                                                       13470411
C        TEST 035  USES THE READ STATEMENT WITH INPUT LIST ITEMS.       13480411
C     THE FILE IS READ UNTIL AN END-OF-FILE CONDITION OCCURS.           13490411
C                                                                       13500411
C                                                                       13510411
      IVTNUM =  35                                                      13520411
      IF (ICZERO) 30350, 0350, 30350                                    13530411
 0350 CONTINUE                                                          13540411
      REWIND I04                                                        13550411
      IVCOMP = 1                                                        13560411
      IVCORR = 6                                                        13570411
      IVON01 = 0                                                        13580411
      IRECCK = 0                                                        13590411
      DO 0352 I = 1,150                                                 13600411
      IRECCK = IRECCK + 1                                               13610411
      IF (IRECCK .EQ. 13)  GO TO 0353                                   13620411
C         TEST 015 WROTE A RECORD WITHOUT ANY I/O LIST ITEMS THEREFORE  13630411
C     THE RECORD IS READ WITHOUT ANY I/O LIST ITEMS.                    13640411
      READ (I04, END = 0354) IPROG, IFILE, ITOTR, IRLGN, IRECN,IEOF     13650411
      GO TO 0355                                                        13660411
 0353 READ (I04)                                                        13670411
      IVON01 = IVON01 + 1                                               13680411
 0355 IF (IRECN .EQ.  IRECCK)  IVON01 = IVON01 + 1                      13690411
 0352 CONTINUE                                                          13700411
      GO TO 40350                                                       13710411
 0354 IVCOMP = IVCOMP * 2                                               13720411
      IF (IVON01 .EQ. 142)  IVCOMP = IVCOMP * 3                         13730411
40350 IF (IVCOMP - 6) 20350, 10350, 20350                               13740411
30350 IVDELE = IVDELE + 1                                               13750411
      WRITE (I02,80000) IVTNUM                                          13760411
      IF (ICZERO) 10350, 0361, 20350                                    13770411
10350 IVPASS = IVPASS + 1                                               13780411
      WRITE (I02,80002) IVTNUM                                          13790411
      GO TO 0361                                                        13800411
20350 IVFAIL = IVFAIL + 1                                               13810411
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          13820411
 0361 CONTINUE                                                          13830411
C                                                                       13840411
C                                                                       13850411
C        THE FOLLOWING SOURCE CODE BRACKETED BY THE COMMENT LINES       13860411
C     *****  BEGIN-FILE-DUMP SECTION AND *****  END-FILE-DUMP SECTION   13870411
C     MAY OR MAY NOT  APPEAR AS COMMENTS IN THE SOURCE PROGRAM.         13880411
C     THIS CODE IS OPTIONAL AND BY DEFAULT IT IS AUTOMATICALLY COMMENTED13890411
C     OUT BY THE EXECUTIVE ROUTINE.  A DUMP OF THE FILE USED BY THIS    13900411
C     ROUTINE IS PROVIDED BY USING THE *OPT1 EXECUTIVE ROUTINE CONTROL  13910411
C     CARD.  IF THE OPTIONAL CODE IS SELECTED THE ROUTINE WILL DUMP     13920411
C     THE CONTENTS OF THE FILE TO THE PRINT FILE FOLLOWING THE TEST     13930411
C     REPORT AND BEFORE THE TEST REPORT SUMMARY.                        13940411
CDB**  BEGIN FILE DUMP CODE                                             13950411
C     REWIND I04                                                        13960411
C     ITOTR = 142                                                       13970411
C     ILUN  = I04                                                       13980411
C     IRLGN = 80                                                        13990411
C     IRNUM = 1                                                         14000411
C7701 FORMAT (80A1)                                                     14010411
C7702 FORMAT (1X,80A1)                                                  14020411
C7703 FORMAT (10X,"FILE ",I2," HAS ",I3," RECORDS - OK" )               14030411
C7704 FORMAT (10X,"FILE ",I2," HAS ",I3," RECORDS - THERE SHOULD BE " ,I14040411
C    13,9H RECORDS.)                                                    14050411
C     DO 7771 IRNUM = 1, ITOTR                                          14060411
C     READ (ILUN, END = 7772)  (IDUMP(ICH), ICH = 1, IRLGN)             14070411
C     WRITE (I02,7702)  (IDUMP(ICH), ICH = 1, IRLGN)                    14080411
C7771 CONTINUE                                                          14090411
C7772 CONTINUE                                                          14100411
CDE**      END OF DUMP CODE                                             14110411
C        TEST  035 IS THE LAST TEST IN THIS PROGRAM.  THE ROUTINE SHOULD14120411
C     HAVE MADE 35 EXPLICIT TESTS AND PROCESSED ONE FILE CONNECTED  FOR 14130411
C     SEQUENTIAL ACCESS                                                 14140411
C                                                                       14150411
C                                                                       14160411
C                                                                       14170411
C     WRITE OUT TEST SUMMARY                                            14180411
C                                                                       14190411
      WRITE (I02,90004)                                                 14200411
      WRITE (I02,90014)                                                 14210411
      WRITE (I02,90004)                                                 14220411
      WRITE (I02,90000)                                                 14230411
      WRITE (I02,90004)                                                 14240411
      WRITE (I02,90020) IVFAIL                                          14250411
      WRITE (I02,90022) IVPASS                                          14260411
      WRITE (I02,90024) IVDELE                                          14270411
      STOP                                                              14280411
90001 FORMAT (" ",24X,"FM411")                                          14290411
90000 FORMAT (" ",20X,"END OF PROGRAM FM411" )                          14300411
C                                                                       14310411
C     FORMATS FOR TEST DETAIL LINES                                     14320411
C                                                                       14330411
80000 FORMAT (" ",4X,I5,6X,"DELETED")                                   14340411
80002 FORMAT (" ",4X,I5,7X,"PASS")                                      14350411
80010 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6)                         14360411
80012 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5)                    14370411
80018 FORMAT (" ",4X,I5,7X,"FAIL",2X,A14,1X,A14)                        14380411
C                                                                       14390411
C     FORMAT STATEMENTS FOR PAGE HEADERS                                14400411
C                                                                       14410411
90002 FORMAT ("1")                                                      14420411
90004 FORMAT (" ")                                                      14430411
90006 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" )            14440411
90008 FORMAT (" ",21X,"VERSION 2.1" )                                   14450411
90010 FORMAT (" ",8X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" )         14460411
90012 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL",5X,"COMPUTED",8X,"CORRECT")  14470411
90014 FORMAT (" ",5X,"----------------------------------------------" ) 14480411
90016 FORMAT (" ",18X,"SUBSET LEVEL TEST" )                             14490411
C                                                                       14500411
C     FORMAT STATEMENTS FOR RUN SUMMARY                                 14510411
C                                                                       14520411
90020 FORMAT (" ",19X,I5," TESTS FAILED" )                              14530411
90022 FORMAT (" ",19X,I5," TESTS PASSED" )                              14540411
90024 FORMAT (" ",19X,I5," TESTS DELETED" )                             14550411
      END                                                               14560411