FM402.f Source File


Contents

Source Code


Source Code

      PROGRAM FM402                                                     00010402
C                                                                       00020402
C                                                                       00030402
C                                                                       00040402
C         THIS ROUTINE TESTS THE A(W) (W IS SIZE OF FIELD IN CHARACTERS)00050402
C     EDIT DESCRIPTOR OF THE FORMAT SPECIFICATION BOTH WITH AND WITHOUT 00060402
C     THE OPTIONAL W.  THE A  EDIT DESCRIPTOR IS USED WITH AN INPUT/    00070402
C     OUTPUT LIST ITEM OF TYPE CHARACTER.  IF A FIELD WIDTH W IS SPECI- 00080402
C     FIED WITH THE A EDIT DESCRIPTOR THE FIELD CONSISTS OF W CHARAC-   00090402
C     TERS.  IF A FIELD WIDTH W IS NOT SPECIFIED WITH THE A EDIT DES-   00100402
C     CRIPTOR, THE NUMBER OF CHARACTERS IN THE FIELD IS THE LENGTH OF   00110402
C     THE CHARACTER INPUT/OUTPUT LIST ITEM.  THIS ROUTINE FIRST         00120402
C     TESTS  FOR PROPER EDITING OF CHARACTER DATA ON OUTPUT BY DIRECTING00130402
C     THE EDITED RESULT  TO A PRINT FILE.    RESULTS OF THIS SET OF     00140402
C     TESTS MUST BE VISUALLY CHECKED FOR CORRECTNESS.  NEXT AN EXTERNAL 00150402
C     FILE CONNECTED FOR SEQUENTIAL ACCESS IS CREATED WITH CHARACTER    00160402
C     DATA.  FINALLY THE FILE IS REWOUND AND READ WITH THE A(W) EDIT    00170402
C     DESCRIPTOR AND CHECKED FOR PROPER EDITING ON INPUT.               00180402
C                                                                       00190402
C         THIS ROUTINE TESTS FOR PROPER EDITING BY                      00200402
C                                                                       00210402
C         (1) THE A EDIT DESCRIPTOR WITHOUT THE OPTIONAL W ON BOTH INPUT00220402
C             AND OUTPUT,                                               00230402
C                                                                       00240402
C         (2) THE AW EDIT DESCRIPTOR WHEN THE LENGTH OF THE INPUT/OUTPUT00250402
C             LIST ITEM IS LESS THAN THE WIDTH W,                       00260402
C                                                                       00270402
C         (3) THE AW EDIT DESCRIPTOR WHEN THE LENGTH OF THE INPUT/OUTPUT00280402
C             LIST ITEM IS BOTH EQUAL TO AND GREATER THAN THE WIDTH W,  00290402
C                                                                       00300402
C         (4) THE A EDIT DESCRIPTOR WHEN USED WITH THE OPTIONAL REPEAT  00310402
C             SPECIFICATION.                                            00320402
C                                                                       00330402
C     REFERENCES -                                                      00340402
C                                                                       00350402
C     AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,          00360402
C     X3.9-1978                                                         00370402
C                                                                       00380402
C         SECTION 3.1,     FORTRAN CHARACTER SET                        00390402
C         SECTION 4.8,     CHARACTER TYPE                               00400402
C         SECTION 8.4.2,   CHARACTER TYPE-STATEMENT                     00410402
C         SECTION 10.4,    CHARACTER ASSIGNMENT  STATEMENT              00420402
C         SECTION 13.5.11, A EDITING                                    00430402
C                                                                       00440402
C                                                                       00450402
C                                                                       00460402
C                                                                       00470402
C     ******************************************************************00480402
C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE         00490402
C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN   00500402
C     X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY.  THE 00510402
C     FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT       00520402
C     ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM.  EACH AUDIT00530402
C     ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS   00540402
C     OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00550402
C     THE RESULT OF EXECUTING THESE TESTS.                              00560402
C                                                                       00570402
C     THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES      00580402
C     FOUND IN THE SUBSET LEVEL OF THE STANDARD.                        00590402
C                                                                       00600402
C           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO             00610402
C              NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY           00620402
C                   SOFTWARE STANDARDS VALIDATION GROUP                 00630402
C                          BUILDING 225  RM A266                        00640402
C                         GAITHERSBURG, MD  20899                       00650402
C     ******************************************************************00660402
C                                                                       00670402
C                                                                       00680402
      IMPLICIT LOGICAL (L)                                              00690402
      IMPLICIT CHARACTER*14 (C)                                         00700402
C                                                                       00710402
      DIMENSION IDUMP (80)                                              00720402
      DIMENSION  CATN11(46), CATN12(5), CATN31(2,3,2), CATN14(46)       00730402
      CHARACTER CATN11*1, CVTN11*1, CATN12*5,  CATN31*1                 00740402
      CHARACTER CVTN12*10, CVTN13*2, CATN14*1, CCTN15*50, CVTN15*50     00750402
      CHARACTER CVTN01*1                                                00760402
                                                                        00770402
      DATA CATN14 /46*' '/                                              00780402
      DATA CCTN15 /'ABCDEFG    HIJKLMN    OPQRSTUVWXYZ      0123456789'/00790402
      DATA CATN11 / '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',   00800402
     1'=', '+', '-','*', '/', '(', ')', ',', '.', '''','A', 'B', 'C',   00810402
     2'D', 'E', 'F','G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',   00820402
     3'Q', 'R', 'S','T', 'U', 'V', 'W', 'X', 'Y', 'Z'/                  00830402
      DATA CATN12 /'ABMYZ', '01589', '=+-()','A5+Z.' ,'1''A,4'/         00840402
                                                                        00850402
C                                                                       00860402
C                                                                       00870402
C                                                                       00880402
C     INITIALIZATION SECTION.                                           00890402
C                                                                       00900402
C     INITIALIZE CONSTANTS                                              00910402
C     ********************                                              00920402
C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER          00930402
      I01 = 5                                                           00940402
C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER              00950402
      I02 = 6                                                           00960402
C     SYSTEM ENVIRONMENT SECTION                                        00970402
C                                                                       00980402
CX010     THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD.00990402
C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5      01000402
C     (UNIT NUMBER FOR CARD READER).                                    01010402
CX011      THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD01020402
C     THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            01030402
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE.         01040402
C                                                                       01050402
CX020     THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD.01060402
C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6      01070402
C     (UNIT NUMBER FOR PRINTER).                                        01080402
CX021     THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.01090402
C     THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            01100402
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE.         01110402
C                                                                       01120402
      IVPASS = 0                                                        01130402
      IVFAIL = 0                                                        01140402
      IVDELE = 0                                                        01150402
      ICZERO = 0                                                        01160402
C                                                                       01170402
C     WRITE OUT PAGE HEADERS                                            01180402
C                                                                       01190402
      WRITE (I02,90002)                                                 01200402
      WRITE (I02,90006)                                                 01210402
      WRITE (I02,90008)                                                 01220402
      WRITE (I02,90004)                                                 01230402
      WRITE (I02,90010)                                                 01240402
      WRITE (I02,90004)                                                 01250402
      WRITE (I02,90016)                                                 01260402
      WRITE (I02,90001)                                                 01270402
      WRITE (I02,90004)                                                 01280402
      WRITE (I02,90012)                                                 01290402
      WRITE (I02,90014)                                                 01300402
      WRITE (I02,90004)                                                 01310402
C                                                                       01320402
C                                                                       01330402
C                                                                       01340402
C        TEST 001 THROUGH 014 TESTS THE   EDIT DESCRIPTOR FOR PROPER    01350402
C     EDITING OF CHARACTER DATA  ON OUTPUT.  TO VALIDATE THESE TESTS    01360402
C     THE EDITED DATA  IS SENT TO A PRINT FILE AND THEREFORE MUST BE    01370402
C     VISUALLY CHECKED FOR CORRECTNESS.  ON OUTPUT THE EDITED FIELD     01380402
C     SIZE IS AW WHERE W IS NUMBER OF POSITIONS IN THE FIELD OR         01390402
C     IS THE SIZE OF THE OUTPUT DATUM ITEM.  SEE SECTION 13.5.11 A      01400402
C     EDITING                                                           01410402
C                                                                       01420402
C                                                                       01430402
80052 FORMAT (" ",4X,  "TESTS 001 THROUGH 014 MUST BE VISUALLY VERIFIED.01440402
     1")                                                                01450402
80054 FORMAT (" ",  "IMMEDIATELY FOLLOWING THIS NARRATIVE IS A REFERENCE01460402
     1 LINE")                                                           01470402
80056 FORMAT (" ",  "OF THE FORM '123456 ...'.   THE REFERENCE LINE IS T01480402
     1O")                                                               01490402
80058 FORMAT (" ","AID IN THE VISUAL VERIFICATION OF THE TESTS.  FOR" ) 01500402
80062 FORMAT (" ","THE OUTPUT TO BE CORRECT THE DATA VALUES DISPLAYED"  01510402
     1)                                                                 01520402
80064 FORMAT (" ",  "IN THE COMPUTED COLUMN MUST MATCH THAT IN THE CORRE01530402
     1CT ")                                                             01540402
80066 FORMAT (" ","COLUMN IN BOTH VALUE AND CHARACTER POSITION." )      01550402
80072 FORMAT (" ","REFERENCE LINE     -      " ,"1234567890" ,5X,  "123401560402
     1567890")                                                          01570402
      WRITE (I02,80052)                                                 01580402
      WRITE (I02,80054)                                                 01590402
      WRITE (I02,80056)                                                 01600402
      WRITE (I02,80058)                                                 01610402
      WRITE (I02,80062)                                                 01620402
      WRITE (I02,80064)                                                 01630402
      WRITE (I02,80066)                                                 01640402
      WRITE (I02,90004)                                                 01650402
      WRITE (I02,80072)                                                 01660402
C                                                                       01670402
C     ****  FCVS PROGRAM  402  -  TEST 001  ****                        01680402
C                                                                       01690402
C        TEST 001 TESTS FOR PROPER EDITING OF THE A EDIT DESCRIPTOR     01700402
C     ON OUTPUT WHERE THE FIELD IS 1 POSITION IN LENGTH, THE            01710402
C     VALUE OF THE DATUM IS LETTERS AND THE OUTPUT LIST ITEM IS A       01720402
C     VARIABLE.                                                         01730402
C                                                                       01740402
      IVTNUM = 001                                                      01750402
      IF (ICZERO) 30010, 0010, 30010                                    01760402
 0010 CONTINUE                                                          01770402
      CVTN01 = 'A'                                                      01780402
 0012 FORMAT (" ",4X,I5,26X,A,14X,"A")                                  01790402
      WRITE (I02, 0012) IVTNUM, CVTN01                                  01800402
      GO TO 0021                                                        01810402
30010 IVDELE = IVDELE + 1                                               01820402
      WRITE (I02,80000) IVTNUM                                          01830402
 0021 CONTINUE                                                          01840402
C                                                                       01850402
C     ****  FCVS PROGRAM  402  -  TEST 002  ****                        01860402
C                                                                       01870402
C        TEST 002 IS SIMILAR TO TEST 001 EXCEPT THAT THE OUTPUT LIST    01880402
C     ITEM IS AN ARRAY ELEMENT.                                         01890402
C                                                                       01900402
      IVTNUM = 002                                                      01910402
      IF (ICZERO) 30020, 0020, 30020                                    01920402
 0020 CONTINUE                                                          01930402
      CATN31 (1,2,1) =  'Z'                                             01940402
 0022 FORMAT (" ",4X,I5,26X,A,14X,"Z")                                  01950402
      WRITE (I02, 0022) IVTNUM, CATN31 (1,2,1)                          01960402
      GO TO 0031                                                        01970402
30020 IVDELE = IVDELE + 1                                               01980402
      WRITE (I02,80000) IVTNUM                                          01990402
 0031 CONTINUE                                                          02000402
C                                                                       02010402
C     ***  FCVS PROGRAM 402  -  TEST 003  ****                          02020402
C                                                                       02030402
C        TEST 003 VERIFIES THAT THE  A  EDIT DESCRIPTOR (WITHOUT THE    02040402
C     W OPTION) CAN PROPERLY EDIT SPECIAL CHARACTERS ON OUTPUT.  THE    02050402
C     SPECIAL CHARACTER / (SLASH) IS USED FOR THIS TEST AND IS STORED   02060402
C     IN AN OUTPUT LIST ITEM 1 POSITION IN LENGTH.                      02070402
C                                                                       02080402
      IVTNUM = 003                                                      02090402
      IF (ICZERO) 30030, 0030, 30030                                    02100402
 0030 CONTINUE                                                          02110402
      CVTN11 = '/'                                                      02120402
 0032 FORMAT (" ",4X,I5,26X,A,14X,"/")                                  02130402
      WRITE (I02, 0032) IVTNUM, CVTN11                                  02140402
      GO TO 0041                                                        02150402
30030 IVDELE = IVDELE + 1                                               02160402
      WRITE (I02, 80000) IVTNUM                                         02170402
 0041 CONTINUE                                                          02180402
C                                                                       02190402
C     ***  FCVS PROGRAM 402  -  TEST 004  ***                           02200402
C                                                                       02210402
C        TEST 004 IS SIMILAR TO TEST 003 EXCEPT THAT THE DATA BEING     02220402
C     EDITED IS NUMERIC.                                                02230402
C                                                                       02240402
      IVTNUM = 004                                                      02250402
      IF (ICZERO) 30040, 0040, 30040                                    02260402
 0040 CONTINUE                                                          02270402
      CVTN11 = '9'                                                      02280402
 0042 FORMAT (" ",4X,I5,26X,A,14X,"9")                                  02290402
      WRITE (I02, 0042) IVTNUM, CVTN11                                  02300402
      GO TO 0051                                                        02310402
30040 IVDELE = IVDELE  + 1                                              02320402
      WRITE (I02, 80000) IVTNUM                                         02330402
 0051 CONTINUE                                                          02340402
C                                                                       02350402
C     ***  FCVS PROGRAM 402  -  TEST 005  ***                           02360402
C                                                                       02370402
C        TEST 005 IS SIMILAR TO TEST 003 EXCEPT THAT IT USES THE SPECIAL02380402
C     CHARACTER QUOTE.                                                  02390402
C                                                                       02400402
      IVTNUM = 005                                                      02410402
      IF (ICZERO) 30050, 0050, 30050                                    02420402
 0050 CONTINUE                                                          02430402
      CVTN11 = ''''                                                     02440402
 0052 FORMAT (" ",4X,I5,26X,A,14X,"'")                                  02450402
      WRITE (I02, 0052) IVTNUM, CVTN11                                  02460402
      GO TO 0061                                                        02470402
30050 IVDELE = IVDELE + 1                                               02480402
      WRITE (I02, 80000) IVTNUM                                         02490402
C                                                                       02500402
C                                                                       02510402
C        TESTS 006 THROUGH TEST  011  TESTS THE A EDIT DESCRIPTOR       02520402
C     WITHOUT THE FIELD WIDTH SPECIFICATION (W OPTION) WHERE THE SIZE   02530402
C     OF THE OUTPUT DATA ITEM  IS 05 CHARACTERS IN LENGTH.              02540402
C                                                                       02550402
C                                                                       02560402
 0061 CONTINUE                                                          02570402
C                                                                       02580402
C     ****  FCVS PROGRAM 402  -  TEST 006  ****                         02590402
C                                                                       02600402
C        TEST 006 TESTS USE OF THE A EDIT DESCRIPTOR WITH LETTERS       02610402
C                                                                       02620402
      IVTNUM = 006                                                      02630402
      IF (ICZERO) 30060, 0060, 30060                                    02640402
 0060 CONTINUE                                                          02650402
      CATN12(1) = 'ABMYZ'                                               02660402
 0062 FORMAT(" ",4X,I5,17X,"     ",A,5X,"     ABMYZ" )                  02670402
      WRITE (I02, 0062) IVTNUM, CATN12(1)                               02680402
      GO TO 0071                                                        02690402
30060 IVDELE = IVDELE + 1                                               02700402
      WRITE (I02, 80000) IVTNUM                                         02710402
 0071 CONTINUE                                                          02720402
C                                                                       02730402
C     ****  FCVS PROGRAM 402  -  TEST 007  ****                         02740402
C                                                                       02750402
C        TEST 007 TESTS USE OF THE A EDIT DESCRIPTOR WITH DIGITS        02760402
C                                                                       02770402
      IVTNUM = 007                                                      02780402
      IF (ICZERO) 30070, 0070, 30070                                    02790402
 0070 CONTINUE                                                          02800402
      CATN12(2) = '01589'                                               02810402
 0072 FORMAT(" ",4X,I5,17X,"     ",A,5X,"     01589" )                  02820402
      WRITE (I02, 0072) IVTNUM, CATN12(2)                               02830402
      GO TO 0081                                                        02840402
30070 IVDELE = IVDELE + 1                                               02850402
      WRITE (I02, 80000) IVTNUM                                         02860402
 0081 CONTINUE                                                          02870402
C                                                                       02880402
C     ****  FCVS PROGRAM 402  -  TEST 008  ****                         02890402
C                                                                       02900402
C        TEST 008 TESTS USE OF THE  A  EDIT DESCRIPTOR WITH SPECIAL     02910402
C     CHARACTERS.                                                       02920402
C                                                                       02930402
      IVTNUM = 008                                                      02940402
      IF (ICZERO) 30080, 0080, 30080                                    02950402
 0080 CONTINUE                                                          02960402
      CATN12(3) = '=+-()'                                               02970402
 0082 FORMAT(" ",4X,I5,17X,"     ",A,5X,"     =+-()" )                  02980402
      WRITE (I02, 0082) IVTNUM, CATN12(3)                               02990402
      GO TO 0091                                                        03000402
30080 IVDELE = IVDELE + 1                                               03010402
      WRITE (I02, 80000) IVTNUM                                         03020402
 0091 CONTINUE                                                          03030402
C                                                                       03040402
C     ****  FCVS PROGRAM FM402  -  TEST 009  ****                       03050402
C                                                                       03060402
C        TEST 009 TESTS USE OF THE  A  EDIT DESCRIPTOR WITH A MIX       03070402
C     OF LETTERS, DIGITS AND SPECIAL CHARACTERS                         03080402
C                                                                       03090402
      IVTNUM = 009                                                      03100402
      IF (ICZERO) 30090, 0090, 30090                                    03110402
 0090 CONTINUE                                                          03120402
      CATN12(4) = 'A5+.Z'                                               03130402
 0092 FORMAT(" ",4X,I5,17X,"     ",A,5X,"     A5+.Z" )                  03140402
      WRITE (I02, 0092) IVTNUM, CATN12(4)                               03150402
      GO TO 0101                                                        03160402
30090 IVDELE = IVDELE + 1                                               03170402
      WRITE (I02, 80000) IVTNUM                                         03180402
 0101 CONTINUE                                                          03190402
C                                                                       03200402
C     ****  FCVS PROGRAM FM402  -  TEST 010  ****                       03210402
C                                                                       03220402
C        TEST 010 TESTS USE OF THE  A  EDIT DESCRIPTOR WITH A MIX       03230402
C     OF LETTERS, DIGITS AND SPECIAL CHARACTERS  INCLUDING APOSTROPES   03240402
C                                                                       03250402
      IVTNUM = 010                                                      03260402
      IF (ICZERO) 30100, 0100, 30100                                    03270402
 0100 CONTINUE                                                          03280402
      CATN12(5) = '1''A,4'                                              03290402
 0102 FORMAT(" ",4X,I5,17X,"     ",A,5X,"     1'A,4" )                  03300402
      WRITE (I02, 0102) IVTNUM, CATN12(5)                               03310402
      GO TO 0111                                                        03320402
30100 IVDELE = IVDELE + 1                                               03330402
      WRITE (I02, 80000) IVTNUM                                         03340402
C                                                                       03350402
 0111 CONTINUE                                                          03360402
C     ****  FCVS PROGRAM FM402  -  TEST 11  ****                        03370402
C                                                                       03380402
C        TEST 011 USES THE  A  EDIT DESCRIPTOR (WITHOUT THE OPTIONAL    03390402
C     FIELD WIDTH SPECIFIED) WITH THE OPTIONAL REPEAT SPECIFICATION.    03400402
C     EACH OUTPUT LIST ITEM WILL BE ONE CHARACTER IN LENGTH.            03410402
C                                                                       03420402
      IVTNUM = 011                                                      03430402
      IF (ICZERO) 30110, 0110, 30110                                    03440402
 0110 CONTINUE                                                          03450402
 0112 FORMAT (" ",4X,I5,17X,10A,5X,"059=+PQUVY" )                       03460402
      WRITE  (I02, 0112) IVTNUM, CATN11(1), CATN11(6), CATN11(10),      03470402
     1CATN11(11), CATN11(12), CATN11(36), CATN11(37), CATN11(41),       03480402
     2CATN11(42), CATN11(45)                                            03490402
      GO TO 0121                                                        03500402
30110 IVDELE = IVDELE + 1                                               03510402
      WRITE (I02, 80000) IVTNUM                                         03520402
 0121 CONTINUE                                                          03530402
C                                                                       03540402
C     ****  FCVS PROGRAM FM402  -  TEST 12  ****                        03550402
C                                                                       03560402
C        TEST 012 IS SIMILAR TO 011 IN THAT THE  A  DESCRIPTOR IS USED  03570402
C     WITH THE OPTIONAL REPEAT SPECIFICATION E. G., 3A  HOWEVER, EACH   03580402
C     OUTPUT LIST ITEM HAS A DIFFERENT NUMBER OF CHARACTERS IN THE ITEM 03590402
C     E. G., THE FIRST I/O LIST ITEM HAS 5 CHARACTERS, THE SECOND       03600402
C     ITEM HAS 2 CHARACTERS AND THE THIRD ITEM HAS 1 CHARACTER.         03610402
C                                                                       03620402
      IVTNUM = 012                                                      03630402
      IF (ICZERO) 30120, 0120, 30120                                    03640402
 0120 CONTINUE                                                          03650402
      CVTN13 = 'YZ'                                                     03660402
      CVTN11 = ')'                                                      03670402
      CATN12(2) = '(12AB'                                               03680402
 0122 FORMAT (" ",4X,I5,17X,"*",3A,"*",5X,"*(12ABYZ)*" )                03690402
      WRITE  (I02, 0122) IVTNUM, CATN12(2), CVTN13, CVTN11              03700402
      GO TO 0131                                                        03710402
30120 IVDELE = IVDELE + 1                                               03720402
      WRITE (I02, 80000) IVTNUM                                         03730402
 0131 CONTINUE                                                          03740402
C                                                                       03750402
C     ****  FCVS PROGRAM FM402  -  TEST 13  ***                         03760402
C                                                                       03770402
C        TEST 013 TESTS FOR PROPER EDITING OF THE  A  EDIT DESCRIPTOR   03780402
C     (WITH THE FIELD WIDTH SPECIFIED) WHEN THE OUTPUT LIST ITEM        03790402
C     HAS FEWER CHARACTERS THAN SPECIFIED BY THE EDIT DESCRIPTOR.  THE  03800402
C     OUTPUT FIELD SHOULD CONSISTS OF BLANKS FOLLOWED BY CHARACTERS     03810402
C     FROM THE INTERNAL REPRESENTATION.                                 03820402
C                                                                       03830402
      IVTNUM = 013                                                      03840402
      IF (ICZERO) 30130, 0130, 30130                                    03850402
 0130 CONTINUE                                                          03860402
      CATN12(1) = 'ABMYZ'                                               03870402
 0132 FORMAT (" ",4X,I5,17X,A10,5X,"     ABMYZ" )                       03880402
      WRITE (I02, 0132) IVTNUM, CATN12(1)                               03890402
      GO TO 0141                                                        03900402
30130 IVDELE = IVDELE + 1                                               03910402
      WRITE (I02, 80000) IVTNUM                                         03920402
 0141 CONTINUE                                                          03930402
C                                                                       03940402
C     ****  FCVS PROGRAM FM402  -  TEST 14  ****                        03950402
C                                                                       03960402
C        TEST 014 TESTS FOR PROPER EDITING OF THE  A  EDIT DESCRIPTOR   03970402
C     (WITH THE FIELD WIDTH SPECIFIED) WHEN THE OUTPUT LIST ITEM        03980402
C     IS GREATER THAN THAT SPECIFIED BY THE EDIT DESCRIPTOR.  THE OUTPUT03990402
C     FIELD SHOULD CONSIST OF THE LEFTMOST CHARACTERS FROM THE INTERNAL 04000402
C     REPRESENTATION.                                                   04010402
C                                                                       04020402
      IVTNUM = 014                                                      04030402
      IF (ICZERO) 30140, 0140, 30140                                    04040402
 0140 CONTINUE                                                          04050402
      CVTN12 = '12345ABCDE'                                             04060402
 0142 FORMAT (" ",4X,I5,17X,"     ",A5,5X,"     12345" )                04070402
      WRITE (I02, 0142) IVTNUM, CVTN12                                  04080402
      GO TO 0151                                                        04090402
30140 IVDELE = IVDELE + 1                                               04100402
      WRITE (I02, 80000) IVTNUM                                         04110402
 0151 CONTINUE                                                          04120402
C                                                                       04130402
C        THE FOLLOWING BLOCK OF SOURCE CODE BEGINNING WITH COMMENT LINE 04140402
C     **** CREATE-FILE SECTION AND ENDING WITH THE COMMENT LINE         04150402
C     **** END-OF-CREATE-FILE SECTION BUILDS A FILE WHICH IS USED IN    04160402
C     TESTING THE A EDIT DESCRIPTOR.  THE FILE PROPERTIES ARE:          04170402
C                                                                       04180402
C              FILE IDENTIFIER     - I09 (X-NUMBER 09)                  04190402
C              RECORD SIZE         - 80 CHARACTERS                      04200402
C              ACCESS METHOD       - SEQUENTIAL                         04210402
C              RECORD TYPE         - FORMATTED                          04220402
C              DESIGNATED DEVICE   - DISK                               04230402
C              TYPE OF DATA        - CHARACTER (A FORMAT)               04240402
C              RECORDS IN FILE     - 143 PLUS THE ENDFILE RECORD        04250402
C                                                                       04260402
C        THE FIRST 20 POSITIONS OF EACH RECORD IN THE FILE UNIQUELY     04270402
C     IDENTIFIES THAT RECORD.  THE REMAINING POSITONS OF THE RECORD     04280402
C     CONTAIN DATA WHICH IS USED IN TESTING THE A EDIT DESCRIPTOR.      04290402
C     A DESCRIPTION OF EACH FIELD OF THE 20-CHARACTER PREAMBLE FOLLOWS. 04300402
C                                                                       04310402
C                VARIABLE NAME IN PROGRAM     CHARACTER POSITIONS       04320402
C                -------- ---- -- -------     --------- ---------       04330402
C                                                                       04340402
C              IPROG  (ROUTINE NAME)         -     1 THRU  3            04350402
C              IFILE  (LOGICAL/ X-NUMBER)    -     4 THRU  5            04360402
C              ITOTR  (RECORDS IN FILE)      -     6 THRU  9            04370402
C              IRLGN  (CHARACTERS IN RECORD) -    10 THRU 12            04380402
C              IRECN  (RECORD NUMBER)        -    13 THRU 16            04390402
C              IEOF   (9999 IF LAST RECORD)  -    17 THRU 20            04400402
C                                                                       04410402
C     DEFAULT ASSIGNMENT FOR FILE IS I09 = 07                           04420402
      I09 = 07                                                          04430402
CX090 THIS CARD IS REPLACED BY THE CONTENTS OF CARD X-090               04440402
CX091 THIS CARD IS REPLACED BY THE CONTENTS OF CARD X-091               04450402
      IPROG = 402                                                       04460402
      IFILE = I09                                                       04470402
      ITOTR = 143                                                       04480402
      IRLGN = 80                                                        04490402
      IRECN = 0                                                         04500402
      IEOF  = 0                                                         04510402
C                                                                       04520402
C                                                                       04530402
C *****  CREATE-FILE  SECTION  *****                                    04540402
C                                                                       04550402
C                                                                       04560402
C     ****  FCVS PROGRAM 402  -  TEST 015  ****                         04570402
C                                                                       04580402
C                                                                       04590402
C         TEST 15 WRITES RECORDS USING THE A EDIT DESCRIPTOR WITHOUT THE04600402
C      OPTIONAL FIELD WIDTH SPECIFICATION.  EACH CHARACTER OF THE       04610402
C      FORTRAN   SET     IS WRITTEN  WITH AN  A  EDIT DESCRIPTOR FROM   04620402
C      THE INTERNAL REPRESENTATION WHICH IS ONE CHARACTER IN LENGTH.    04630402
C      TEN DIFFERENT CHARACTERS ARE WRITTEN IN EACH RECORD UNTIL THE    04640402
C      FULL CHARACTER SET IS EXHAUSTED.  THIS SEQUENCE IS REPEATED UNTIL04650402
C      50 RECORDS HAVE BEEN WRITTEN (5 RECORDS PER SET AND 10 SETS).    04660402
C      THE RECORDS ARE WRITTEN TO A MASS STORAGE FILE.                  04670402
C                                                                       04680402
C                                                                       04690402
      IVTNUM =  15                                                      04700402
      IF (ICZERO) 30150, 0150, 30150                                    04710402
 0150 CONTINUE                                                          04720402
70003 FORMAT (I3,I2,I4,I3,2I4,50X,10A)                                  04730402
70004 FORMAT (I3,I2,I4,I3,2I4,54X,6A)                                   04740402
      IRECN = 0                                                         04750402
      DO 4023 I=1,10                                                    04760402
      IRECN = IRECN + 1                                                 04770402
      WRITE (I09, 70003) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       04780402
     1     (CATN11 (J), J = 1,10)                                       04790402
C        CHARACTERS 0 THROUGH 9 ARE CONTAINED IN THIS RECORD            04800402
      IRECN = IRECN + 1                                                 04810402
      WRITE (I09, 70003) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       04820402
     1     (CATN11(J), J = 11,20)                                       04830402
C        CHARACTERS =,+,-,*,/,(,),,,. AND ' ARE IN THIS RECORD.         04840402
      IRECN = IRECN + 1                                                 04850402
      WRITE (I09, 70003) IPROG,    IFILE, ITOTR, IRLGN, IRECN, IEOF,    04860402
     1      (CATN11(J), J = 21,30)                                      04870402
C        CHARACTERS A THROUGH J  ARE IN THIS RECORD                     04880402
      IRECN = IRECN + 1                                                 04890402
      WRITE (I09, 70003) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       04900402
     1      (CATN11(J), J = 31,40)                                      04910402
C         CHARACTERS K THROUGH T ARE IN THIS RECORD                     04920402
      IRECN = IRECN + 1                                                 04930402
      WRITE (I09, 70004) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       04940402
     1      (CATN11(J), J = 41,46)                                      04950402
C         CHARACTERS U THROUGH Z ARE IN THIS RECORD                     04960402
 4023 CONTINUE                                                          04970402
      IVCOMP = IRECN                                                    04980402
      IVCORR = 050                                                      04990402
      IVON01 = 50                                                       05000402
40150 IF (IVON01 - IRECN )  20150, 10150, 20150                         05010402
C         VALUE IN  IVCOMP  IS THE NUMBER OF RECORDS WRITTEN            05020402
30150 IVDELE = IVDELE + 1                                               05030402
      WRITE (I02,80000) IVTNUM                                          05040402
      IF (ICZERO) 10150, 0161, 20150                                    05050402
10150 IVPASS = IVPASS + 1                                               05060402
      WRITE (I02,80002) IVTNUM                                          05070402
      GO TO 0161                                                        05080402
20150 IVFAIL = IVFAIL + 1                                               05090402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          05100402
 0161 CONTINUE                                                          05110402
C                                                                       05120402
C     ****  FCVS PROGRAM 402  -  TEST 016  ****                         05130402
C                                                                       05140402
C                                                                       05150402
C         TEST 16 IS THE SAME AS TEST 15 EXCEPT THAT THE 50 RECORDS     05160402
C      WRITTEN  USE  THE A EDIT DESCRIPTOR WITH THE OPTIONAL FIELD WIDTH05170402
C      SPECIFIED.                                                       05180402
C                                                                       05190402
C                                                                       05200402
      IVTNUM =  16                                                      05210402
      IF (ICZERO) 30160, 0160, 30160                                    05220402
 0160 CONTINUE                                                          05230402
70005 FORMAT  (I3,I2,I4,I3,2I4,50X,10A1)                                05240402
70006 FORMAT  (I3,I2,I4,I3,2I4,54X,6A1)                                 05250402
      IRECN = 50                                                        05260402
      DO 4024 I=1,10                                                    05270402
      IRECN = IRECN + 1                                                 05280402
      WRITE (I09, 70005) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       05290402
     1     (CATN11(J), J = 1,10)                                        05300402
C         CHARACTERS 0 THROUGH 9  ARE CONTAINED IN THIS RECORD          05310402
      IRECN = IRECN + 1                                                 05320402
      WRITE (I09, 70005) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       05330402
     1     (CATN11(J), J = 11,20)                                       05340402
C         CHARACTERS =,+,-,*,/,(,),,,.  AND ' ARE IN THIS RECORD        05350402
      IRECN = IRECN + 1                                                 05360402
      WRITE (I09, 70005) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       05370402
     1     (CATN11(J), J = 21,30)                                       05380402
C         CHARACTERS A THROUGH J ARE IN THIS RECORD                     05390402
      IRECN = IRECN + 1                                                 05400402
      WRITE (I09, 70005) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       05410402
     1     (CATN11(J), J = 31,40)                                       05420402
C         CHARACTERS K THROUGH T ARE IN THIS RECORD                     05430402
      IRECN = IRECN + 1                                                 05440402
      WRITE (I09, 70006) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       05450402
     1     (CATN11(J), J = 41,46)                                       05460402
C         CHARACTERS U THROUGH Z ARE IN THIS RECORD                     05470402
 4024 CONTINUE                                                          05480402
      IVCOMP = IRECN - 50                                               05490402
      IVCORR = 50                                                       05500402
      IVON01 = 100                                                      05510402
40160 IF (IVON01 - IRECN) 20160, 10160, 20160                           05520402
30160 IVDELE = IVDELE + 1                                               05530402
      WRITE (I02,80000) IVTNUM                                          05540402
      IF (ICZERO) 10160, 0171, 20160                                    05550402
10160 IVPASS = IVPASS + 1                                               05560402
      WRITE (I02,80002) IVTNUM                                          05570402
      GO TO 0171                                                        05580402
20160 IVFAIL = IVFAIL + 1                                               05590402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          05600402
 0171 CONTINUE                                                          05610402
C                                                                       05620402
C     ****  FCVS PROGRAM 402  -  TEST 017  ****                         05630402
C                                                                       05640402
C                                                                       05650402
C         TEST 17 WRITES 40 RECORDS CONTAINING CHARACTER DATA WHICH IS  05660402
C     USED  FOR LATER TESTS.  THE FILE SHOULD CONTAIN 140 RECORDS       05670402
C     FOLLOWING EXECUTION OF THIS TEST.                                 05680402
C                                                                       05690402
C                                                                       05700402
      IVTNUM =  17                                                      05710402
      IF (ICZERO) 30170, 0170, 30170                                    05720402
 0170 CONTINUE                                                          05730402
70007 FORMAT (I3,I2,I4,I3,2I4,  "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789   05740402
     1                     ")                                           05750402
70008 FORMAT (I3,I2,I4,I3,2I4,  "=+-*/(),'.ABMYZ01589=+-()A5+Z.1'A,4    05760402
     1                     ")                                           05770402
      IRECN = 100                                                       05780402
      DO 4025 I = 1,20                                                  05790402
      IRECN = IRECN + 1                                                 05800402
      WRITE (I09, 70007) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        05810402
C         CHARACTERS 0 THROUGH 9  AND A THROUGH Z ARE IN THIS RECORD    05820402
      IRECN = IRECN + 1                                                 05830402
      WRITE (I09, 70008) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        05840402
C         SPECIAL CHARACTERS ARE IN THIS RECORD                         05850402
 4025 CONTINUE                                                          05860402
      IVCOMP = IRECN - 100                                              05870402
      IVCORR = 40                                                       05880402
      IVON01 = 140                                                      05890402
40170 IF (IVON01 - IRECN) 20170, 10170, 20170                           05900402
30170 IVDELE = IVDELE + 1                                               05910402
      WRITE (I02,80000) IVTNUM                                          05920402
      IF (ICZERO) 10170, 0181, 20170                                    05930402
10170 IVPASS = IVPASS + 1                                               05940402
      WRITE (I02,80002) IVTNUM                                          05950402
      GO TO 0181                                                        05960402
20170 IVFAIL = IVFAIL + 1                                               05970402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          05980402
 0181 CONTINUE                                                          05990402
C                                                                       06000402
C     ****  FCVS PROGRAM 402  -  TEST 018  ****                         06010402
C                                                                       06020402
C                                                                       06030402
C        TEST 18 WRITES A RECORD WHICH CONTAINS A LONG FIELD (50 CHAR-  06040402
C     ACTERS) USING AN A EDIT DESCRIPTOR WITHOUT THE OPTIONAL FIELD     06050402
C     WIDTH SPECIFICATION.                                              06060402
C                                                                       06070402
C                                                                       06080402
      IVTNUM =  18                                                      06090402
      IF (ICZERO) 30180, 0180, 30180                                    06100402
 0180 CONTINUE                                                          06110402
      IRECN = 141                                                       06120402
70009 FORMAT (I3,I2,I4,I3,2I4,10X,A)                                    06130402
      WRITE (I09, 70009) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, CCTN1506140402
      IVCOMP = IRECN - 140                                              06150402
      IVCORR = 1                                                        06160402
      IVON01 = 141                                                      06170402
40180 IF (IVON01 - IRECN) 20180, 10180, 20180                           06180402
30180 IVDELE = IVDELE + 1                                               06190402
      WRITE (I02,80000) IVTNUM                                          06200402
      IF (ICZERO) 10180, 0191, 20180                                    06210402
10180 IVPASS = IVPASS + 1                                               06220402
      WRITE (I02,80002) IVTNUM                                          06230402
      GO TO 0191                                                        06240402
20180 IVFAIL = IVFAIL + 1                                               06250402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          06260402
 0191 CONTINUE                                                          06270402
C                                                                       06280402
C     ****  FCVS PROGRAM 402  -  TEST 019  ****                         06290402
C                                                                       06300402
C                                                                       06310402
C        TEST 19 WRITES A LONG FIELD (50 CHARACTERS)                    06320402
C     USING AN A EDIT DESCRIPTOR  WITH   THE OPTIONAL FIELD WIDTH       06330402
C     SPECIFICATION.                                                    06340402
C                                                                       06350402
C                                                                       06360402
      IVTNUM =  19                                                      06370402
      IF (ICZERO) 30190, 0190, 30190                                    06380402
 0190 CONTINUE                                                          06390402
      IRECN = 142                                                       06400402
70010 FORMAT (I3,I2,I4,I3,2I4,10X,A50)                                  06410402
      WRITE (I09, 70010) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, CCTN1506420402
      IVCOMP = IRECN - 141                                              06430402
      IVCORR = 1                                                        06440402
      IVON01 = 142                                                      06450402
40190 IF (IVON01 - IRECN) 20190, 10190, 20190                           06460402
30190 IVDELE = IVDELE + 1                                               06470402
      WRITE (I02,80000) IVTNUM                                          06480402
      IF (ICZERO) 10190, 0201, 20190                                    06490402
10190 IVPASS = IVPASS + 1                                               06500402
      WRITE (I02,80002) IVTNUM                                          06510402
      GO TO 0201                                                        06520402
20190 IVFAIL = IVFAIL + 1                                               06530402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          06540402
 0201 CONTINUE                                                          06550402
C                                                                       06560402
C     ****  FCVS PROGRAM 402  -  TEST 020  ****                         06570402
C                                                                       06580402
C                                                                       06590402
      IVTNUM =  20                                                      06600402
      IF (ICZERO) 30200, 0200, 30200                                    06610402
 0200 CONTINUE                                                          06620402
      IRECN  = IRECN  + 1                                               06630402
      IEOF = 9999                                                       06640402
70011 FORMAT (I3,I2,I4,I3,2I4,59X," ")                                  06650402
      WRITE (I09, 70011) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        06660402
      ENDFILE I09                                                       06670402
      REWIND I09                                                        06680402
      WRITE (I02, 90004)                                                06690402
70012 FORMAT ("   FILE I09 HAS BEEN CREATED AND CONTAINS 143 RECORDS" ) 06700402
70013 FORMAT (" INCORRECT NUMBER OF RECORDS IN FILE - " , I5   ,  " RECO06710402
     1RDS")                                                             06720402
70014 FORMAT (" WRITTEN BUT 143 RECORDS SHOULD HAVE BEEN WRITTEN." )    06730402
      IF (IRECN - 143) 4020, 4021, 4020                                 06740402
 4020 WRITE (I02, 70013) IRECN                                          06750402
      WRITE (I02, 70014)                                                06760402
      GO TO 4022                                                        06770402
 4021 WRITE (I02, 70012)                                                06780402
      WRITE (I02, 90004)                                                06790402
C                                                                       06800402
C **** END-OF-CREATE-FILE SECTION  ****                                 06810402
C                                                                       06820402
 4022 CONTINUE                                                          06830402
C                                                                       06840402
C         TESTS 20 THROUGH 24 READ 5 OF THE FIRST 50 RECORDS USING THE  06850402
C     A EDIT DESCRIPTOR WITHOUT THE OPTIONAL FIELD WIDTH SPECIFICATION. 06860402
C     EACH CHARACTER IS CHECKED FOR PROPER EDITING.  THE FIELDS ARE     06870402
C     WRITTEN AND READ WITH THE SAME A EDIT DESCRIPTOR FORM.  THE       06880402
C     RESULTING NUMBER FROM EACH TEST IN IVCOMP AND IVCORR IS           06890402
C     THE NUMBER OF CORRECT CHARACTERS FOUND AS A RESULT OF THE READ.   06900402
C                                                                       06910402
C                                                                       06920402
C         TEST 20 READS AND CHECKS THE CHARACTERS 0 THROUGH 9.  THE     06930402
C     VALUE RESULTING FROM THE TEST IN IVCOMP AND IVCORR REFLECTS THE   06940402
C     NUMBER OF CORRECT CHARACTERS FOUND AS A RESULT OF THE READ.       06950402
C                                                                       06960402
      IVCOMP = 0                                                        06970402
      IVCORR = 10                                                       06980402
 0202 FORMAT (70X,10A)                                                  06990402
      READ (I09, 0202) (CATN14(J), J = 1,10)                            07000402
      DO 0203 I=1,10                                                    07010402
      IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1                 07020402
 0203 CONTINUE                                                          07030402
40200 IF (IVCOMP - 10) 20200, 10200, 20200                              07040402
30200 IVDELE = IVDELE + 1                                               07050402
      WRITE (I02,80000) IVTNUM                                          07060402
      IF (ICZERO) 10200, 0211, 20200                                    07070402
10200 IVPASS = IVPASS + 1                                               07080402
      WRITE (I02,80002) IVTNUM                                          07090402
      GO TO 0211                                                        07100402
20200 IVFAIL = IVFAIL + 1                                               07110402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          07120402
 0211 CONTINUE                                                          07130402
C                                                                       07140402
C     ****  FCVS PROGRAM 402  -  TEST 021  ****                         07150402
C                                                                       07160402
C                                                                       07170402
C         TEST 21 READS AND CHECKS THE CHARACTERS =,+,-,*,/,(,),,,., AND07180402
C     '.  THE NUMBER RESULTING FROM THE TEST IN IVCOMP AND IVCORR       07190402
C     REFLECTS THE NUMBER OF CORRECT CHARACTERS FOUND AS A RESULT OF    07200402
C     THE READ.                                                         07210402
C                                                                       07220402
C                                                                       07230402
      IVTNUM =  21                                                      07240402
      IF (ICZERO) 30210, 0210, 30210                                    07250402
 0210 CONTINUE                                                          07260402
      IVCOMP = 0                                                        07270402
      IVCORR = 10                                                       07280402
 0212 FORMAT (70X,10A)                                                  07290402
      READ (I09, 0212) (CATN14(J), J = 11,20)                           07300402
      DO 0213 I = 11,20                                                 07310402
      IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1                 07320402
 0213 CONTINUE                                                          07330402
40210 IF (IVCOMP - 10) 20210, 10210, 20210                              07340402
30210 IVDELE = IVDELE + 1                                               07350402
      WRITE (I02,80000) IVTNUM                                          07360402
      IF (ICZERO) 10210, 0221, 20210                                    07370402
10210 IVPASS = IVPASS + 1                                               07380402
      WRITE (I02,80002) IVTNUM                                          07390402
      GO TO 0221                                                        07400402
20210 IVFAIL = IVFAIL + 1                                               07410402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          07420402
 0221 CONTINUE                                                          07430402
C                                                                       07440402
C     ****  FCVS PROGRAM 402  -  TEST 022  ****                         07450402
C                                                                       07460402
C                                                                       07470402
C         TEST 22 READS AND CHECKS THE CHARACTERS A THROUGH J.          07480402
C                                                                       07490402
C                                                                       07500402
      IVTNUM =  22                                                      07510402
      IF (ICZERO) 30220, 0220, 30220                                    07520402
 0220 CONTINUE                                                          07530402
      IVCOMP = 0                                                        07540402
      IVCORR = 10                                                       07550402
 0222 FORMAT (70X,10A)                                                  07560402
      READ (I09, 0222) (CATN14(J), J = 21,30)                           07570402
      DO 0223 I = 21,30                                                 07580402
      IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1                 07590402
 0223 CONTINUE                                                          07600402
40220 IF (IVCOMP - 10) 20220, 10220, 20220                              07610402
30220 IVDELE = IVDELE + 1                                               07620402
      WRITE (I02,80000) IVTNUM                                          07630402
      IF (ICZERO) 10220, 0231, 20220                                    07640402
10220 IVPASS = IVPASS + 1                                               07650402
      WRITE (I02,80002) IVTNUM                                          07660402
      GO TO 0231                                                        07670402
20220 IVFAIL = IVFAIL + 1                                               07680402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          07690402
 0231 CONTINUE                                                          07700402
C                                                                       07710402
C     ****  FCVS PROGRAM 402  -  TEST 023  ****                         07720402
C                                                                       07730402
C                                                                       07740402
C         TEST 23 READS AND CHECKS THE CHARACTERS K THROUGH T.          07750402
C                                                                       07760402
C                                                                       07770402
      IVTNUM =  23                                                      07780402
      IF (ICZERO) 30230, 0230, 30230                                    07790402
 0230 CONTINUE                                                          07800402
      IVCOMP = 0                                                        07810402
      IVCORR = 10                                                       07820402
 0232 FORMAT (70X,10A)                                                  07830402
      READ (I09, 0232) (CATN14(J), J = 31,40)                           07840402
      DO 0233 I = 31,40                                                 07850402
      IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1                 07860402
 0233 CONTINUE                                                          07870402
40230 IF (IVCOMP - 10) 20230, 10230, 20230                              07880402
30230 IVDELE = IVDELE + 1                                               07890402
      WRITE (I02,80000) IVTNUM                                          07900402
      IF (ICZERO) 10230, 0241, 20230                                    07910402
10230 IVPASS = IVPASS + 1                                               07920402
      WRITE (I02,80002) IVTNUM                                          07930402
      GO TO 0241                                                        07940402
20230 IVFAIL = IVFAIL + 1                                               07950402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          07960402
 0241 CONTINUE                                                          07970402
C                                                                       07980402
C     ****  FCVS PROGRAM 402  -  TEST 024  ****                         07990402
C                                                                       08000402
C                                                                       08010402
C         TEST 24 READS AND CHECKS THE CHARACTERS U THROUGH Z.          08020402
C                                                                       08030402
C                                                                       08040402
      IVTNUM =  24                                                      08050402
      IF (ICZERO) 30240, 0240, 30240                                    08060402
 0240 CONTINUE                                                          08070402
      IVCOMP = 0                                                        08080402
      IVCORR = 06                                                       08090402
 0242 FORMAT (74X,6A)                                                   08100402
      READ (I09, 0242) (CATN14(J), J = 41,46)                           08110402
      DO 0243 I = 41,46                                                 08120402
      IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1                 08130402
 0243 CONTINUE                                                          08140402
40240 IF (IVCOMP - 6) 20240, 10240, 20240                               08150402
30240 IVDELE = IVDELE + 1                                               08160402
      WRITE (I02,80000) IVTNUM                                          08170402
      IF (ICZERO) 10240, 0251, 20240                                    08180402
10240 IVPASS = IVPASS + 1                                               08190402
      WRITE (I02,80002) IVTNUM                                          08200402
      GO TO 0251                                                        08210402
20240 IVFAIL = IVFAIL + 1                                               08220402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          08230402
 0251 CONTINUE                                                          08240402
C                                                                       08250402
C                                                                       08260402
C         TESTS 25 THROUGH 29  READ RECORD NUMBERS 56 THROUGH 60 USING  08270402
C     THE A EDIT DESCRIPTOR WITH THE OPTIONAL FIELD WIDTH SPECIFIED.    08280402
C     EACH FIELD IS 1 CHARACTER IN LENGTH AND IS CHECKED FOR PROPER     08290402
C     EDITING. THE FIELDS ARE WRITTEN AND READ WITH THE SAME EDIT       08300402
C     DESCRIPTOR.  THE NUMBER RESULTING FROM EACH TEST IN IVCOMP AND    08310402
C     IVCORR IS THE THE NUMBER OF CORRECT CHARACTERS FOUND AS A RESULT  08320402
C     OF THE READ.                                                      08330402
C                                                                       08340402
C                                                                       08350402
70020 FORMAT (12X,2I4,59X,A1)                                           08360402
      REWIND I09                                                        08370402
      DO 4026 I = 1, 150                                                08380402
      READ (I09, 70020, END = 4027) IRECN, IEOF                         08390402
      IF (IRECN .EQ. 55) GO TO 4027                                     08400402
 4026 CONTINUE                                                          08410402
 4027 IF (IRECN - 55) 4028, 4029, 4028                                  08420402
C                                                                       08430402
C         THE CODE IMMEDIATELY PRECEDING POSITIONS THE FILE TO RECORD   08440402
C     NUMBER 55 FOR TESTS 25 THROUGH 29.                                08450402
C                                                                       08460402
70021 FORMAT (  "  THE INITIAL RECORD FOR TESTS 25 THROUGH 29 COULD NOT 08470402
     1BE FOUND,")                                                       08480402
70022 FORMAT (" THEREFORE TESTS 25 THROUGH 29     ARE   DELETED." )     08490402
 4028 WRITE (I02, 70021)                                                08500402
      WRITE (I02, 70022)                                                08510402
      GO TO 301                                                         08520402
 4029 CONTINUE                                                          08530402
      DO 4030 I = 1,46                                                  08540402
      CATN14(I) = ' '                                                   08550402
 4030 CONTINUE                                                          08560402
C                                                                       08570402
C         THE ABOVE DO LOOP   INITIALIZES THE ARRAY CATN14 TO BLANKS.   08580402
C                                                                       08590402
C                                                                       08600402
C     ****  FCVS PROGRAM 402  -  TEST 025  ****                         08610402
C                                                                       08620402
C                                                                       08630402
C         TEST 25 READS AND CHECKS THE CHARACTERS 0 THROUGH 9.          08640402
C                                                                       08650402
C                                                                       08660402
      IVTNUM =  25                                                      08670402
      IF (ICZERO) 30250, 0250, 30250                                    08680402
 0250 CONTINUE                                                          08690402
      IVCOMP = 0                                                        08700402
      IVCORR = 10                                                       08710402
 0252 FORMAT (70X,10A1)                                                 08720402
      READ (I09, 0252) (CATN14(J), J = 1, 10)                           08730402
      DO 0253 I = 1,10                                                  08740402
      IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1                 08750402
 0253 CONTINUE                                                          08760402
40250 IF (IVCOMP - 10) 20250, 10250, 20250                              08770402
30250 IVDELE = IVDELE + 1                                               08780402
      WRITE (I02,80000) IVTNUM                                          08790402
      IF (ICZERO) 10250, 0261, 20250                                    08800402
10250 IVPASS = IVPASS + 1                                               08810402
      WRITE (I02,80002) IVTNUM                                          08820402
      GO TO 0261                                                        08830402
20250 IVFAIL = IVFAIL + 1                                               08840402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          08850402
 0261 CONTINUE                                                          08860402
C                                                                       08870402
C     ****  FCVS PROGRAM 402  -  TEST 026  ****                         08880402
C                                                                       08890402
C                                                                       08900402
C         TEST 26 READS AND CHECKS THE CHARACTERS =,+,-,*,/,(,),,,., AND08910402
C     '.                                                                08920402
C                                                                       08930402
C                                                                       08940402
      IVTNUM =  26                                                      08950402
      IF (ICZERO) 30260, 0260, 30260                                    08960402
 0260 CONTINUE                                                          08970402
      IVCOMP = 0                                                        08980402
      IVCORR = 10                                                       08990402
 0262 FORMAT (70X,10A1)                                                 09000402
      READ (I09, 0262) (CATN14(J), J = 11, 20)                          09010402
      DO 0263 I = 11,20                                                 09020402
      IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1                 09030402
 0263 CONTINUE                                                          09040402
40260 IF (IVCOMP -10) 20260, 10260, 20260                               09050402
30260 IVDELE = IVDELE + 1                                               09060402
      WRITE (I02,80000) IVTNUM                                          09070402
      IF (ICZERO) 10260, 0271, 20260                                    09080402
10260 IVPASS = IVPASS + 1                                               09090402
      WRITE (I02,80002) IVTNUM                                          09100402
      GO TO 0271                                                        09110402
20260 IVFAIL = IVFAIL + 1                                               09120402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          09130402
 0271 CONTINUE                                                          09140402
C                                                                       09150402
C     ****  FCVS PROGRAM 402  -  TEST 027  ****                         09160402
C                                                                       09170402
C                                                                       09180402
C         TEST 27 READS AND CHECKS THE CHARACTERS A THROUGH J.          09190402
C                                                                       09200402
C                                                                       09210402
      IVTNUM =  27                                                      09220402
      IF (ICZERO) 30270, 0270, 30270                                    09230402
 0270 CONTINUE                                                          09240402
      IVCOMP = 0                                                        09250402
      IVCORR = 10                                                       09260402
 0272 FORMAT (70X,10A1)                                                 09270402
      READ (I09, 0272) (CATN14(J), J = 21,30)                           09280402
      DO 0273 I = 21,30                                                 09290402
      IF  (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1                09300402
 0273 CONTINUE                                                          09310402
40270 IF (IVCOMP - 10) 20270, 10270, 20270                              09320402
30270 IVDELE = IVDELE + 1                                               09330402
      WRITE (I02,80000) IVTNUM                                          09340402
      IF (ICZERO) 10270, 0281, 20270                                    09350402
10270 IVPASS = IVPASS + 1                                               09360402
      WRITE (I02,80002) IVTNUM                                          09370402
      GO TO 0281                                                        09380402
20270 IVFAIL = IVFAIL + 1                                               09390402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          09400402
 0281 CONTINUE                                                          09410402
C                                                                       09420402
C     ****  FCVS PROGRAM 402  -  TEST 028  ****                         09430402
C                                                                       09440402
C                                                                       09450402
C         TEST 28 READS AND CHECKS THE CHARACTERS K THROUGH T.          09460402
C                                                                       09470402
C                                                                       09480402
      IVTNUM =  28                                                      09490402
      IF (ICZERO) 30280, 0280, 30280                                    09500402
 0280 CONTINUE                                                          09510402
      IVCOMP = 0                                                        09520402
      IVCORR = 10                                                       09530402
 0282 FORMAT (70X,10A1)                                                 09540402
      READ (I09, 0282) (CATN14(J), J = 31,40)                           09550402
      DO 0283 I = 31, 40                                                09560402
      IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1                 09570402
 0283 CONTINUE                                                          09580402
40280 IF (IVCOMP - 10) 20280, 10280, 20280                              09590402
30280 IVDELE = IVDELE + 1                                               09600402
      WRITE (I02,80000) IVTNUM                                          09610402
      IF (ICZERO) 10280, 0291, 20280                                    09620402
10280 IVPASS = IVPASS + 1                                               09630402
      WRITE (I02,80002) IVTNUM                                          09640402
      GO TO 0291                                                        09650402
20280 IVFAIL = IVFAIL + 1                                               09660402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          09670402
 0291 CONTINUE                                                          09680402
C                                                                       09690402
C     ****  FCVS PROGRAM 402  -  TEST 029  ****                         09700402
C                                                                       09710402
C                                                                       09720402
C         TEST 29 READS AND CHECKS THE CHARACTERS U THROUGH Z.          09730402
C                                                                       09740402
C                                                                       09750402
      IVTNUM =  29                                                      09760402
      IF (ICZERO) 30290, 0290, 30290                                    09770402
 0290 CONTINUE                                                          09780402
      IVCOMP = 0                                                        09790402
      IVCORR = 6                                                        09800402
 0292 FORMAT (74X,6A1)                                                  09810402
      READ (I09, 0292) (CATN14(J), J = 41,46)                           09820402
      DO 0293 I = 41,46                                                 09830402
      IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1                 09840402
 0293 CONTINUE                                                          09850402
40290 IF (IVCOMP - 6) 20290, 10290, 20290                               09860402
30290 IVDELE = IVDELE + 1                                               09870402
      WRITE (I02,80000) IVTNUM                                          09880402
      IF (ICZERO) 10290, 0301, 20290                                    09890402
10290 IVPASS = IVPASS + 1                                               09900402
      WRITE (I02,80002) IVTNUM                                          09910402
      GO TO 0301                                                        09920402
20290 IVFAIL = IVFAIL + 1                                               09930402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          09940402
 0301 CONTINUE                                                          09950402
C                                                                       09960402
C                                                                       09970402
C         TESTS 30 THROUGH 32 READ RECORD NUMBERS 101 THROUGH 103. THESE09980402
C     TESTS TEST FOR PROPER EDITING ON INPUT WHERE THE INPUT FIELD      09990402
C     AND THE INPUT LIST ITEM ARE OF DIFFERENT SIZES.                   10000402
C                                                                       10010402
C                                                                       10020402
70031 FORMAT (12X,2I4,59X,A1)                                           10030402
      REWIND I09                                                        10040402
      DO 4031 I = 1,150                                                 10050402
      READ (I09, 70031, END = 4032) IRECN, IEOF                         10060402
      IF (IRECN .EQ. 100) GO TO 4032                                    10070402
 4031 CONTINUE                                                          10080402
 4032 IF (IRECN - 100) 4033, 4034, 4033                                 10090402
70032 FORMAT (  "  THE START RECORD FOR TESTS 30 THROUGH 32 COULD NOT   10100402
     1BE FOUND,")                                                       10110402
70033 FORMAT (" THEREFORE TESTS 30 THROUGH 32     ARE   DELETED." )     10120402
 4033 WRITE (I02, 70032)                                                10130402
      WRITE (I02, 70033)                                                10140402
      GO TO 331                                                         10150402
 4034 CONTINUE                                                          10160402
C                                                                       10170402
C     ****  FCVS PROGRAM 402  -  TEST 030  ****                         10180402
C                                                                       10190402
C                                                                       10200402
C         TEST 30 TESTS THE  A EDIT DESCRIPTOR WITH THE OPTIONAL REPEAT 10210402
C     SPECIFICATION.  THE A  EDIT DESCRIPTOR DOES NOT HAVE THE OPTIONAL 10220402
C     FIELD WIDTH SPECIFICATION AND THE INPUT LIST ITEMS  VARY IN SIZE  10230402
C     FROM 1 TO 10 CHARACTERS.  RECORD NUMBER 101 IS READ AND WAS       10240402
C     CREATED IN TEST 17 WITH THE FORMAT STATEMENT                      10250402
C                                                                       10260402
C     FORMAT (I3,I2,I4,I3,2I4,60HABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789   10270402
C    1                     )                                            10280402
C                                                                       10290402
C                                                                       10300402
      IVTNUM =  30                                                      10310402
      IF (ICZERO) 30300, 0300, 30300                                    10320402
 0300 CONTINUE                                                          10330402
      IVCOMP = 1                                                        10340402
      IVCORR = 210                                                      10350402
      CATN14(1) = ' '                                                   10360402
      CVTN13 = '  '                                                     10370402
      CATN12(3) = '     '                                               10380402
      CVTN12 = '          '                                             10390402
 0302 FORMAT (20X,4A,42X,A1)                                            10400402
      READ (I09, 0302, END = 0303)  CATN14(1), CVTN13, CATN12(3), CVTN1210410402
 0303 IF (CATN14(1) .EQ. 'A')           IVCOMP = IVCOMP * 2             10420402
      IF (CVTN13    .EQ. 'BC')          IVCOMP = IVCOMP * 3             10430402
      IF (CATN12(3) .EQ. 'DEFGH')       IVCOMP = IVCOMP * 5             10440402
      IF (CVTN12  .EQ. 'IJKLMNOPQR')    IVCOMP = IVCOMP * 7             10450402
40300 IF (IVCOMP - 210) 20300, 10300, 20300                             10460402
30300 IVDELE = IVDELE + 1                                               10470402
      WRITE (I02,80000) IVTNUM                                          10480402
      IF (ICZERO) 10300, 0311, 20300                                    10490402
10300 IVPASS = IVPASS + 1                                               10500402
      WRITE (I02,80002) IVTNUM                                          10510402
      GO TO 0311                                                        10520402
20300 IVFAIL = IVFAIL + 1                                               10530402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          10540402
 0311 CONTINUE                                                          10550402
C                                                                       10560402
C     ****  FCVS PROGRAM 402  -  TEST 031  ****                         10570402
C                                                                       10580402
C                                                                       10590402
C         TEST 31 TESTS FOR PROPER EDITING OF THE A EDIT DESCRIPTOR WHEN10600402
C     THE SPECIFIED WIDTH OF THE DESCRIPTOR IS LESS THAN THE INTERNAL   10610402
C     REPRESENTATION OF THE INPUT LIST ITEM.  THE CHARACTERS SHOULD     10620402
C     APPEAR LEFT-JUSTIFIED WITH TRAILING BLANKS IN THE INTERNAL        10630402
C     REPRESENTATION.     RECORD NUMBER 102 IS READ AND WAS CREATED     10640402
C     IN TEST 17 WITH THE FORMAT STATEMENT                              10650402
C                                                                       10660402
C     FORMAT (I3,I2,I4,I3,2I4,60H=+-*/(),'.ABMYZ01589=+-()A5+Z.1'A,4    10670402
C    1                     )                                            10680402
C                                                                       10690402
C                                                                       10700402
C                                                                       10710402
      IVTNUM =  31                                                      10720402
      IF (ICZERO) 30310, 0310, 30310                                    10730402
 0310 CONTINUE                                                          10740402
      CVTN12 = '9999999999'                                             10750402
      IVCOMP = 0                                                        10760402
      IVCORR = 1                                                        10770402
 0312 FORMAT (20X,10X,A5,40X)                                           10780402
      READ (I09, 0312, END = 0313) CVTN12                               10790402
 0313 IF (CVTN12 .EQ. 'ABMYZ     ')  IVCOMP = 1                         10800402
40310 IF (IVCOMP - 1) 20310, 10310, 20310                               10810402
30310 IVDELE = IVDELE + 1                                               10820402
      WRITE (I02,80000) IVTNUM                                          10830402
      IF (ICZERO) 10310, 0321, 20310                                    10840402
10310 IVPASS = IVPASS + 1                                               10850402
      WRITE (I02,80002) IVTNUM                                          10860402
      GO TO 0321                                                        10870402
20310 IVFAIL = IVFAIL + 1                                               10880402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          10890402
 0321 CONTINUE                                                          10900402
C                                                                       10910402
C     ****  FCVS PROGRAM 402  -  TEST 032  ****                         10920402
C                                                                       10930402
C                                                                       10940402
C         TEST 32  TESTS FOR PROPER  EDITING OF THE  A  EDIT            10950402
C     DESCRIPTOR WHEN THE WIDTH OF THE DESCRIPTOR IS GREATER THAN THE   10960402
C     INTERNAL REPRESENTATION OF THE INPUT LIST ITEM.  THE RIGHTMOST    10970402
C     CHARACTERS SHOULD BE TAKEN FROM THE INPUT FIELD.  RECORD NUMBER   10980402
C     103 IS EXPECTED TO BE READ.  THE RECORD WAS CREATED IN TEST 17    10990402
C     WITH THE FORMAT STATEMENT                                         11000402
C                                                                       11010402
C     FORMAT (I3,I2,I4,I3,2I4,60HABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789   11020402
C    1                     )                                            11030402
C                                                                       11040402
C                                                                       11050402
C                                                                       11060402
      IVTNUM =  32                                                      11070402
      IF (ICZERO) 30320, 0320, 30320                                    11080402
 0320 CONTINUE                                                          11090402
      CATN12 (5) = 'AAAAA'                                              11100402
      IVCOMP = 0                                                        11110402
      IVCORR = 1                                                        11120402
 0322 FORMAT (20X,10X,A10,35X)                                          11130402
      READ (I09, 0322, END = 0323) CATN12 (5)                           11140402
 0323 IF (CATN12(5) .EQ. 'PQRST')  IVCOMP = 1                           11150402
40320 IF (IVCOMP - 1) 20320, 10320, 20320                               11160402
30320 IVDELE = IVDELE + 1                                               11170402
      WRITE (I02,80000) IVTNUM                                          11180402
      IF (ICZERO) 10320, 0331, 20320                                    11190402
10320 IVPASS = IVPASS + 1                                               11200402
      WRITE (I02,80002) IVTNUM                                          11210402
      GO TO 0331                                                        11220402
20320 IVFAIL = IVFAIL + 1                                               11230402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          11240402
 0331 CONTINUE                                                          11250402
C                                                                       11260402
C                                                                       11270402
C         TESTS 33 AND 34 READ A LONG INPUT FIELD (50 CHARACTERS) AND   11280402
C     CHECK RESULTING INTERNAL REPRESENTATION.  THE RECORD IS READ      11290402
C     WITH THE SAME A EDIT DESCRIPTOR AS WAS USED TO WRITE THE RECORD.  11300402
C                                                                       11310402
C                                                                       11320402
70034 FORMAT (12X,2I4,60X)                                              11330402
      REWIND I09                                                        11340402
      DO 4035 I = 1,150                                                 11350402
      READ (I09, 70034, END = 4036) IRECN, IEOF                         11360402
      IF (IRECN .EQ. 140) GO TO 4036                                    11370402
 4035 CONTINUE                                                          11380402
 4036 IF (IRECN - 140) 4037, 4038, 4037                                 11390402
C         THE ABOVE CODE POSITIONS THE FILE TO RECORD NUMBER 140 FOR    11400402
C     TESTS 33 AND 34.                                                  11410402
C                                                                       11420402
70035 FORMAT (  "    THE START RECORD FOR TESTS 33 AND 34 COULD NOT BE  11430402
     1FOUND,")                                                          11440402
70036 FORMAT (" THEREFORE TESTS 33 AND 34     ARE   DELETED." )         11450402
 4037 WRITE (I02, 70035)                                                11460402
      WRITE (I02, 70036)                                                11470402
      GO TO 351                                                         11480402
 4038 CONTINUE                                                          11490402
C                                                                       11500402
C     ****  FCVS PROGRAM 402  -  TEST 033  ****                         11510402
C                                                                       11520402
C                                                                       11530402
C         TEST 33 READS A LONG FIELD WITH THE WIDTH SPECIFIED ON THE  A 11540402
C     EDIT DESCRIPTOR.  RECORD NUMBER 141 IS READ.   THE RECORD WAS     11550402
C     CREATED IN TEST 18 AND CONTAINS FIELD DATA OF                     11560402
C                                                                       11570402
C                 'ABCDEFG    HIJKLMN    OPQRSTUVWXYZ      0123456789'  11580402
C                                                                       11590402
C     WITHOUT THE SURROUNDING APOSTROPHES.                              11600402
C                                                                       11610402
C                                                                       11620402
C                                                                       11630402
      IVTNUM =  33                                                      11640402
      IF (ICZERO) 30330, 0330, 30330                                    11650402
 0330 CONTINUE                                                          11660402
      CVTN15 = '                                                   '    11670402
      IVCOMP = 0                                                        11680402
      IVCORR = 1                                                        11690402
 0332 FORMAT (20X,10X,A50)                                              11700402
      READ (I09, 0332) CVTN15                                           11710402
      IF (CVTN15 .EQ. 'ABCDEFG    HIJKLMN    OPQRSTUVWXYZ      01234567811720402
     19')   IVCOMP = 1                                                  11730402
40330 IF  (IVCOMP -1 ) 20330, 10330, 20330                              11740402
30330 IVDELE = IVDELE + 1                                               11750402
      WRITE (I02,80000) IVTNUM                                          11760402
      IF (ICZERO) 10330, 0341, 20330                                    11770402
10330 IVPASS = IVPASS + 1                                               11780402
      WRITE (I02,80002) IVTNUM                                          11790402
      GO TO 0341                                                        11800402
20330 IVFAIL = IVFAIL + 1                                               11810402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          11820402
 0341 CONTINUE                                                          11830402
C                                                                       11840402
C     ****  FCVS PROGRAM 402  -  TEST 034  ****                         11850402
C                                                                       11860402
C                                                                       11870402
C         TEST 34 READS A LONG FIELD USING THE A EDIT DESCRIPTOR        11880402
C     WITHOUT THE OPTIONAL WIDTH SPECIFIED.  RECORD NUMBER 142 IS READ. 11890402
C     THE RECORD WAS CREATED IN TEST 19 AND CONTAINS THE FIELD DATA     11900402
C                                                                       11910402
C                 'ABCDEFG    HIJKLMN    OPQRSTUVWXYZ      0123456789'  11920402
C                                                                       11930402
C     WITHOUT THE SURROUNDING APOSTROPHES.                              11940402
C                                                                       11950402
C                                                                       11960402
      IVTNUM =  34                                                      11970402
      IF (ICZERO) 30340, 0340, 30340                                    11980402
 0340 CONTINUE                                                          11990402
      CVTN15 = '                                                   '    12000402
      IVCOMP = 0                                                        12010402
      IVCORR = 1                                                        12020402
 0342 FORMAT (20X,10X,A)                                                12030402
      READ (I09, 0342) CVTN15                                           12040402
      IF (CVTN15 .EQ. 'ABCDEFG    HIJKLMN    OPQRSTUVWXYZ      01234567812050402
     19')   IVCOMP = 1                                                  12060402
40340 IF (IVCOMP - 1) 20340, 10340, 20340                               12070402
30340 IVDELE = IVDELE + 1                                               12080402
      WRITE (I02,80000) IVTNUM                                          12090402
      IF (ICZERO) 10340, 0351, 20340                                    12100402
10340 IVPASS = IVPASS + 1                                               12110402
      WRITE (I02,80002) IVTNUM                                          12120402
      GO TO 0351                                                        12130402
20340 IVFAIL = IVFAIL + 1                                               12140402
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          12150402
 0351 CONTINUE                                                          12160402
C                                                                       12170402
C                                                                       12180402
C                                                                       12190402
C        THE FOLLOWING SOURCE CODE BRACKETED BY THE COMMENT LINES       12200402
C     *****  BEGIN-FILE-DUMP SECTION AND *****  END-FILE-DUMP SECTION   12210402
C     MAY OR MAY NOT  APPEAR AS COMMENTS IN THE SOURCE PROGRAM.         12220402
C     THIS CODE IS OPTIONAL AND BY DEFAULT IT IS AUTOMATICALLY COMMENTED12230402
C     OUT BY THE EXECUTIVE ROUTINE.  A DUMP OF THE FILE USED BY THIS    12240402
C     ROUTINE IS PROVIDED BY USING THE *OPT1 EXECUTIVE ROUTINE CONTROL  12250402
C     CARD.  IF THE OPTIONAL CODE IS SELECTED THE ROUTINE WILL DUMP     12260402
C     THE CONTENTS OF THE FILE TO THE PRINT FILE FOLLOWING THE TEST     12270402
C     REPORT AND BEFORE THE TEST REPORT SUMMARY.                        12280402
C                                                                       12290402
CDB**   BEGIN FILE DUMP CODE                                            12300402
C     REWIND I09                                                        12310402
C     IRNUM = 1                                                         12320402
C     IRLGN = 80                                                        12330402
C     ILUN  = I09                                                       12340402
C7701 FORMAT     (I3,I2,I4,I3,2I4,60A1)                                 12350402
C7702 FORMAT (" ",I3,I2,I4,I3,2I4,60A1)                                 12360402
C7703 FORMAT (10X,"FILE ",I2," HAS ",I3," RECORDS - OK" )               12370402
C7704 FORMAT (10X,"FILE ",I2," HAS ",I3," RECORDS - THERE SHOULD BE " , 12380402
C    1I3,9H RECORDS.)                                                   12390402
C     DO 7771 IRNUM = 1, ITOTR                                          12400402
C     READ (ILUN, 7701)  IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       12410402
C    1    (IDUMP(ICH), ICH = 1,60)                                      12420402
C     WRITE (I02, 7702)  IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       12430402
C    1    (IDUMP(ICH), ICH = 1,60)                                      12440402
C     IF (IEOF .EQ. 9999)   GO TO 7772                                  12450402
C7771 CONTINUE                                                          12460402
C     GO TO 7775                                                        12470402
C7772 IF (IRNUM - ITOTR)   7774, 7773, 7775                             12480402
C7773 WRITE  (I02,  7703)  ILUN, IRNUM                                  12490402
C     GO TO 7779                                                        12500402
C7774 WRITE (I02,  7704) ILUN, IRNUM, ITOTR                             12510402
C     GO TO 7779                                                        12520402
C7775 DO 7776  I = 1,20                                                 12530402
C     READ (ILUN, 7701)  IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       12540402
C    1    (IDUMP(ICH), ICH = 1,60)                                      12550402
C     WRITE (I02, 7702)  IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       12560402
C    1    (IDUMP(ICH), ICH = 1,60)                                      12570402
C     IRNUM = IRNUM + 1                                                 12580402
C     IF (IEOF .EQ. 9999)  GO TO 7777                                   12590402
C7776 CONTINUE                                                          12600402
C7777 WRITE  (I02, 7704)  ILUN, IRNUM, ITOTR                            12610402
C7779 CONTINUE                                                          12620402
CDE**      END OF DUMP CODE                                             12630402
C                                                                       12640402
C         THERE SHOULD BE  34 TESTS IN THIS ROUTINE                     12650402
C                                                                       12660402
C                                                                       12670402
C                                                                       12680402
C                                                                       12690402
C     WRITE OUT TEST SUMMARY                                            12700402
C                                                                       12710402
      WRITE (I02,90004)                                                 12720402
      WRITE (I02,90014)                                                 12730402
      WRITE (I02,90004)                                                 12740402
      WRITE (I02,90000)                                                 12750402
      WRITE (I02,90004)                                                 12760402
      WRITE (I02,90020) IVFAIL                                          12770402
      WRITE (I02,90022) IVPASS                                          12780402
      WRITE (I02,90024) IVDELE                                          12790402
      STOP                                                              12800402
90001 FORMAT (" ",24X,"FM402")                                          12810402
90000 FORMAT (" ",20X,"END OF PROGRAM FM402" )                          12820402
C                                                                       12830402
C     FORMATS FOR TEST DETAIL LINES                                     12840402
C                                                                       12850402
80000 FORMAT (" ",4X,I5,6X,"DELETED")                                   12860402
80002 FORMAT (" ",4X,I5,7X,"PASS")                                      12870402
80010 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6)                         12880402
80012 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5)                    12890402
80018 FORMAT (" ",4X,I5,7X,"FAIL",2X,A14,1X,A14)                        12900402
C                                                                       12910402
C     FORMAT STATEMENTS FOR PAGE HEADERS                                12920402
C                                                                       12930402
90002 FORMAT ("1")                                                      12940402
90004 FORMAT (" ")                                                      12950402
90006 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" )            12960402
90008 FORMAT (" ",21X,"VERSION 2.1" )                                   12970402
90010 FORMAT (" ",8X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" )         12980402
90012 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL",5X,"COMPUTED",8X,"CORRECT")  12990402
90014 FORMAT (" ",5X,"----------------------------------------------" ) 13000402
90016 FORMAT (" ",18X,"SUBSET LEVEL TEST" )                             13010402
C                                                                       13020402
C     FORMAT STATEMENTS FOR RUN SUMMARY                                 13030402
C                                                                       13040402
90020 FORMAT (" ",19X,I5," TESTS FAILED" )                              13050402
90022 FORMAT (" ",19X,I5," TESTS PASSED" )                              13060402
90024 FORMAT (" ",19X,I5," TESTS DELETED" )                             13070402
      END                                                               13080402