FM401.f Source File


Contents

Source Code


Source Code

      PROGRAM FM401                                                     00010401
C                                                                       00020401
C                                                                       00030401
C        THIS ROUTINE TESTS FOR PROPER EDITING OF LOGICAL DATA BY       00040401
C     THE L EDIT DESCRIPTOR OF THE FORMAT SPECIFICATION.  THE L EDIT    00050401
C     DESCRIPTOR IS FIRST TESTED FOR PROPER EDITING ON OUTPUT BY        00060401
C     DIRECTING THE EDITED RESULT TO A PRINT FILE.  THE RESULTS MUST    00070401
C     BE VISUALLY CHECKED FOR CORRECTNESS  BY  EXAMINING THE EXECUTION  00080401
C     REPORT PRODUCED BY THIS ROUTINE. NEXT A NONPRINTER FILE WHICH     00090401
C     IS CONNECTED FOR SEQUENTIAL ACCESS IS CREATED WITH LOGICAL DATA   00100401
C     FIELDS AND THEN REPOSITIONED TO THE FIRST RECORD IN THE FILE.     00110401
C     THE FILE IS THEN READ USING THE SAME EDIT DESCRIPTORS AS WERE     00120401
C     USED TO CREATE THE FILE AND THE INTERNAL DATA REPRESENTATION AS A 00130401
C     RESULT OF READING THE LOGICAL DATA IS CHECKED.                    00140401
C        THE FOLLOWING L EDITING TESTS ARE MADE TO SEE THAT             00150401
C                                                                       00160401
C          (1) THE VALUE T OR F IS PRODUCED ON OUTPUT WHEN THE INTERNAL 00170401
C              DATUM IS TRUE AND FALSE RESPECTIVELY,                    00180401
C          (2) THE VALUE OF THE INPUT LIST ITEM IS TRUE OR FALSE        00190401
C              WHEN THE INPUT FIELD IS T AND F RESPECTIVELY,            00200401
C          (3) THE VALUES .T, .F,   T,    F, .TRUE., .FALSE.,   .T, AND 00210401
C                 .F ARE ACCEPTABLE FORMS FOR INPUT DATA FIELDS         00220401
C          (4) THE INPUT VALUES T OR F MAY BE FOLLOWED BY               00230401
C              ADDITIONAL CHARACTERS IN THE FIELD,                      00240401
C          (5) THE REPEATABLE  EDIT DESCRIPTOR FOR L EDITING FUNCTIONS  00250401
C              CORRECTLY,                                               00260401
C          (6) THE FIELDS CONTAINING LOGICAL DATA CAN BE WRITTEN        00270401
C              USING ONE  L EDIT DESCRIPTOR AND READ USING A DIFFERENT  00280401
C              FORM OF THE L EDIT DESCRIPTOR.                           00290401
C                                                                       00300401
C     REFERENCES -                                                      00310401
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,       00320401
C             X3.9-1978                                                 00330401
C                                                                       00340401
C        SECTION 4.7,      LOGICAL TYPE                                 00350401
C        SECTION 13.1.1,   FORMAT STATEMENT                             00360401
C        SECTION 13.5.10,  L EDITING                                    00370401
C                                                                       00380401
C                                                                       00390401
C                                                                       00400401
C     ******************************************************************00410401
C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE         00420401
C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN   00430401
C     X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY.  THE 00440401
C     FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT       00450401
C     ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM.  EACH AUDIT00460401
C     ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS   00470401
C     OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00480401
C     THE RESULT OF EXECUTING THESE TESTS.                              00490401
C                                                                       00500401
C     THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES      00510401
C     FOUND IN THE SUBSET LEVEL OF THE STANDARD.                        00520401
C                                                                       00530401
C           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO             00540401
C              NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY           00550401
C                   SOFTWARE STANDARDS VALIDATION GROUP                 00560401
C                          BUILDING 225  RM A266                        00570401
C                         GAITHERSBURG, MD  20899                       00580401
C     ******************************************************************00590401
C                                                                       00600401
C                                                                       00610401
      IMPLICIT LOGICAL (L)                                              00620401
      IMPLICIT CHARACTER*14 (C)                                         00630401
C                                                                       00640401
      DIMENSION LAON15(5), LAON12(2)                                    00650401
      DIMENSION IDUMP(132)                                              00660401
C                                                                       00670401
C                                                                       00680401
C                                                                       00690401
C     INITIALIZATION SECTION.                                           00700401
C                                                                       00710401
C     INITIALIZE CONSTANTS                                              00720401
C     ********************                                              00730401
C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER          00740401
      I01 = 5                                                           00750401
C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER              00760401
      I02 = 6                                                           00770401
C     SYSTEM ENVIRONMENT SECTION                                        00780401
C                                                                       00790401
CX010     THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD.00800401
C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5      00810401
C     (UNIT NUMBER FOR CARD READER).                                    00820401
CX011      THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00830401
C     THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00840401
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE.         00850401
C                                                                       00860401
CX020     THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD.00870401
C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6      00880401
C     (UNIT NUMBER FOR PRINTER).                                        00890401
CX021     THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00900401
C     THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00910401
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE.         00920401
C                                                                       00930401
      IVPASS = 0                                                        00940401
      IVFAIL = 0                                                        00950401
      IVDELE = 0                                                        00960401
      ICZERO = 0                                                        00970401
C                                                                       00980401
C     WRITE OUT PAGE HEADERS                                            00990401
C                                                                       01000401
      WRITE (I02,90002)                                                 01010401
      WRITE (I02,90006)                                                 01020401
      WRITE (I02,90008)                                                 01030401
      WRITE (I02,90004)                                                 01040401
      WRITE (I02,90010)                                                 01050401
      WRITE (I02,90004)                                                 01060401
      WRITE (I02,90016)                                                 01070401
      WRITE (I02,90001)                                                 01080401
      WRITE (I02,90004)                                                 01090401
      WRITE (I02,90012)                                                 01100401
      WRITE (I02,90014)                                                 01110401
      WRITE (I02,90004)                                                 01120401
C                                                                       01130401
C                                                                       01140401
C                                                                       01150401
C        TEST 001 THROUGH 007 TESTS THE L EDIT DESCRIPTOR FOR PROPER    01160401
C     EDITING OF LOGICAL DATUM ON OUTPUT.  TO VALIDATE THESE TESTS      01170401
C     THE EDITED DATUM IS SENT TO A PRINT FILE AND THEREFORE MUST BE    01180401
C     VISUALLY CHECKED FOR CORRECTNESS.  ON OUTPUT THE EDITED FIELD     01190401
C     CONSISTS OF W-1 (W IS NUMBER OF POSITIONS IN THE FIELD) BLANKS    01200401
C     FOLLOWED BY A T OR F AS THE VALUE OF THE DATUM IS TRUE OR FALSE   01210401
C     RESPECTIVELY.  SEE SECTION  13.5.10 L EDITING.                    01220401
C                                                                       01230401
C                                                                       01240401
80052 FORMAT (" ",4X,  "TESTS 001 THROUGH 007 MUST BE VISUALLY VERIFIED.01250401
     1")                                                                01260401
80054 FORMAT (" ",  "IMMEDIATELY FOLLOWING THIS NARRATIVE IS A REFERENCE01270401
     1 LINE")                                                           01280401
80056 FORMAT (" ",  "OF THE FORM '123456 ...'.   THE REFERENCE LINE IS T01290401
     1O")                                                               01300401
80058 FORMAT (" ","AID IN THE VISUAL VERIFICATION OF THE TESTS.  FOR" ) 01310401
80062 FORMAT (" ","THE OUTPUT TO BE CORRECT THE DATA VALUES DISPLAYED" )01320401
80064 FORMAT (" ",  "IN THE COMPUTED COLUMN MUST MATCH THAT IN THE CORRE01330401
     1CT ")                                                             01340401
80066 FORMAT (" ","COLUMN IN BOTH VALUE AND CHARACTER POSITION." )      01350401
80072 FORMAT (" ","REFERENCE LINE     -      " ,"1234567890" ,5X,  "123401360401
     1567890")                                                          01370401
      WRITE (I02,80052)                                                 01380401
      WRITE (I02,80054)                                                 01390401
      WRITE (I02,80056)                                                 01400401
      WRITE (I02,80058)                                                 01410401
      WRITE (I02,80062)                                                 01420401
      WRITE (I02,80064)                                                 01430401
      WRITE (I02,80066)                                                 01440401
      WRITE (I02,90004)                                                 01450401
      WRITE (I02,80072)                                                 01460401
C                                                                       01470401
C     ****  FCVS PROGRAM  401  -  TEST 001  ****                        01480401
C                                                                       01490401
C        TEST 001 TESTS FOR PROPER EDITING OF THE L EDIT DESCRIPTOR     01500401
C     ON OUTPUT WHERE THE FIELD IS 1 POSITION IN LENGTH, THE            01510401
C     VALUE OF THE DATUM IS TRUE AND THE OUTPUT LIST ITEM IS A          01520401
C     VARIABLE.                                                         01530401
C                                                                       01540401
      IVTNUM = 001                                                      01550401
      IF (ICZERO) 30010, 0010, 30010                                    01560401
 0010 CONTINUE                                                          01570401
      LCON01 = .TRUE.                                                   01580401
 0012 FORMAT (" ",4X,I5,26X,L1,14X,"T")                                 01590401
      WRITE (I02, 0012) IVTNUM, LCON01                                  01600401
      GO TO 0021                                                        01610401
30010 IVDELE = IVDELE + 1                                               01620401
      WRITE (I02,80000) IVTNUM                                          01630401
 0021 CONTINUE                                                          01640401
C                                                                       01650401
C     ****  FCVS PROGRAM  401  -  TEST 002  ****                        01660401
C                                                                       01670401
C        TEST 002 IS SIMILAR TO TEST 001 EXCEPT THAT THE OUTPUT LIST    01680401
C     ITEM IS AN ARRAY ELEMENT.                                         01690401
C                                                                       01700401
      IVTNUM = 002                                                      01710401
      IF (ICZERO) 30020, 0020, 30020                                    01720401
 0020 CONTINUE                                                          01730401
      LAON12(2) = .TRUE.                                                01740401
 0022 FORMAT (" ",4X,I5,26X,L1,14X,"T")                                 01750401
      WRITE (I02, 0022) IVTNUM, LAON12(2)                               01760401
      GO TO 0031                                                        01770401
30020 IVDELE = IVDELE + 1                                               01780401
      WRITE (I02,80000) IVTNUM                                          01790401
 0031 CONTINUE                                                          01800401
C                                                                       01810401
C     ****  FCVS PROGRAM  401  -  TEST 003  ****                        01820401
C                                                                       01830401
C        TEST 003 TESTS TO SEE THAT ON OUTPUT 9 BLANKS PRECEDE THE VALUE01840401
C     T WHERE THE L EDIT DESCRIPTOR INDICATES THAT THE FIELD OCCUPIES   01850401
C     10 POSITIONS.  THE VALUE OF THE INTERNAL DATUM IS TRUE.           01860401
C                                                                       01870401
      IVTNUM = 003                                                      01880401
      IF (ICZERO) 30030, 0030, 30030                                    01890401
 0030 CONTINUE                                                          01900401
      LCON01 = .TRUE.                                                   01910401
 0032 FORMAT (" ",4X,I5,17X,L10,5X,"         T" )                       01920401
      WRITE (I02, 0032) IVTNUM, LCON01                                  01930401
      GO TO 0041                                                        01940401
30030 IVDELE = IVDELE + 1                                               01950401
      WRITE (I02, 80000) IVTNUM                                         01960401
 0041 CONTINUE                                                          01970401
C                                                                       01980401
C     ****  FCVS PROGRAM  401  -  TEST 004  ****                        01990401
C                                                                       02000401
C        TEST 004 TESTS TO SEE THAT THE VALUE F IS PRODUCED ON OUTPUT   02010401
C     WHEN THE VALUE OF THE INTERNAL DATUM IS FALSE AND THE L EDITING   02020401
C     FIELD IS 1 POSITION IN LENGTH.                                    02030401
C                                                                       02040401
      IVTNUM = 004                                                      02050401
      IF (ICZERO) 30040, 0040, 30040                                    02060401
 0040 CONTINUE                                                          02070401
      LCON02 = .FALSE.                                                  02080401
 0042 FORMAT (" ",4X,I5,26X,L1,14X,"F")                                 02090401
      WRITE (I02, 0042) IVTNUM, LCON02                                  02100401
      GO TO 0051                                                        02110401
30040 IVDELE = IVDELE + 1                                               02120401
      WRITE (I02,80000) IVTNUM                                          02130401
 0051 CONTINUE                                                          02140401
C                                                                       02150401
C     ****  FCVS PROGRAM  401  -  TEST 005  ****                        02160401
C                                                                       02170401
C        TEST 005 VERIFIES THAT ON OUTPUT 9 BLANKS PRECEDE THE VALUE F  02180401
C     WHERE THE L EDIT DESCRIPTOR IS L10 (FIELD OCCUPIES 10 POSITIONS). 02190401
C     THE VALUE OF THE INTERNAL DATUM IS FALSE.                         02200401
C                                                                       02210401
      IVTNUM = 005                                                      02220401
      IF (ICZERO) 30050, 0050, 30050                                    02230401
 0050 CONTINUE                                                          02240401
      LCON02 = .FALSE.                                                  02250401
 0052 FORMAT (" ",4X,I5,17X,L10,5X,"         F" )                       02260401
      WRITE (I02, 0052) IVTNUM, LCON02                                  02270401
      GO TO 0061                                                        02280401
30050 IVDELE = IVDELE + 1                                               02290401
      WRITE (I02, 80000) IVTNUM                                         02300401
 0061 CONTINUE                                                          02310401
C                                                                       02320401
C     ****  FCVS PROGRAM  401  -  TEST 006  ****                        02330401
C                                                                       02340401
C        TEST 006 TESTS THE OPTIONAL REPEAT SPECIFICATION OF THE L      02350401
C     EDIT DESCRIPTOR WHERE THE FIELD OCCUPIES 1 POSITION  (EDIT        02360401
C     DESCRIPTOR IS 5L1).                                               02370401
C                                                                       02380401
      IVTNUM = 006                                                      02390401
      IF (ICZERO) 30060, 0060, 30060                                    02400401
 0060 CONTINUE                                                          02410401
      LCON01 = .TRUE.                                                   02420401
      LCON02 = .FALSE.                                                  02430401
      LCON03 = .FALSE.                                                  02440401
      LAON12(1) = .FALSE.                                               02450401
      LAON12(2) = .TRUE.                                                02460401
 0062 FORMAT (" ",4X,I5,17X,"     ",5L1,5X,"     TFFFT" )               02470401
      WRITE (I02, 0062) IVTNUM, LCON01, LCON02, LCON03, LAON12(1),      02480401
     1LAON12(2)                                                         02490401
      GO TO 0071                                                        02500401
30060 IVDELE = IVDELE + 1                                               02510401
      WRITE (I02, 80000) IVTNUM                                         02520401
 0071 CONTINUE                                                          02530401
C                                                                       02540401
C     ***  FCVS PROGRAM  401  -  TEST 007  ****                         02550401
C                                                                       02560401
C        TEST 007 TESTS THE OPTIONAL REPEAT SPECIFICATION  OF THE L     02570401
C     EDIT DESCRIPTOR WHERE THE FIELD OCCUPIES 3 POSITIONS (EDIT        02580401
C     DESCRIPTOR IS 3L3).                                               02590401
C                                                                       02600401
      IVTNUM = 007                                                      02610401
      IF (ICZERO) 30070, 0070, 30070                                    02620401
 0070 CONTINUE                                                          02630401
      LCON01    = .TRUE.                                                02640401
      LCON02    = .FALSE.                                               02650401
      LAON12(2) = .TRUE.                                                02660401
 0072 FORMAT (" ",4X,I5,17X," ",3L3,5X,"   T  F  T" )                   02670401
      WRITE (I02, 0072)  IVTNUM, LCON01, LCON02, LAON12(2)              02680401
      GO TO 0081                                                        02690401
30070 IVDELE = IVDELE + 1                                               02700401
      WRITE (I02, 80000) IVTNUM                                         02710401
 0081 CONTINUE                                                          02720401
C                                                                       02730401
C        THE FOLLOWING BLOCK OF SOURCE CODE BEGINNING WITH COMMENT LINE 02740401
C     **** CREATE-FILE SECTION AND ENDING WITH THE COMMENT LINE         02750401
C     **** END-OF-CREATE-FILE SECTION BUILDS A FILE WHICH IS USED IN    02760401
C     TESTING THE L EDIT DESCRIPTOR.  THE FILE PROPERTIES ARE           02770401
C                                                                       02780401
C              FILE IDENTIFIER     - I08 (X-NUMBER 08)                  02790401
C              RECORD SIZE         - 80 CHARACTERS                      02800401
C              ACCESS METHOD       - SEQUENTIAL                         02810401
C              RECORD TYPE         - FORMATTED                          02820401
C              DESIGNATED DEVICE   - DISK                               02830401
C              TYPE OF DATA        - LOGICAL (L FORMAT)                 02840401
C              RECORDS IN FILE     - 141                                02850401
C                                                                       02860401
C        THE FIRST 20 POSITIONS OF EACH RECORD IN THE FILE UNIQUELY     02870401
C     IDENTIFY   THAT RECORD.  THE REMAINING POSITONS OF THE RECORD     02880401
C     CONTAIN DATA WHICH IS USED IN TESTING THE L EDIT DESCRIPTOR.      02890401
C     A DESCRIPTION OF EACH FIELD OF THE 20-CHARACTER PREAMBLE FOLLOWS. 02900401
C                                                                       02910401
C                VARIABLE NAME IN PROGRAM     CHARACTER POSITIONS       02920401
C               -----------------------    -------------------          02930401
C                                                                       02940401
C              IPROG  (ROUTINE NAME)         -     1 THRU  3            02950401
C              IFILE  (LOGICAL/ X-NUMBER)    -     4 THRU  5            02960401
C              ITOTR  (RECORDS IN FILE)      -     6  THRU  9           02970401
C              IRLGN  (CHARACTERS IN RECORD) -    10 THRU 12            02980401
C              IRECN  (RECORD NUMBER)        -    13 THRU 16            02990401
C              IEOF   (9999 IF LAST RECORD)  -    17 THRU 20            03000401
C                                                                       03010401
C     DEFAULT ASSIGNMENT FOR FILE IS I08 = 07                           03020401
      I08 = 07                                                          03030401
CX080 THIS CARD IS REPLACED BY THE CONTENTS OF CARD X-080               03040401
CX081 THIS CARD IS REPLACED BY THE CONTENTS OF CARD X-081               03050401
      IPROG = 401                                                       03060401
      IFILE = I08                                                       03070401
      ITOTR = 141                                                       03080401
      IRLGN = 80                                                        03090401
      IRECN = 0                                                         03100401
      IEOF  = 0                                                         03110401
C                                                                       03120401
C        THERE ARE 10 SETS OF 14 RECORDS PER SET PLUS ONE               03130401
C     TRAILER RECORD FOR A TOTAL OF 141 DATA RECORDS IN THE FILE.       03140401
C     ALTHOUGH ONLY 12 RECORDS ARE USED IN TESTING, THE FILE IS MADE    03150401
C     LARGER TO PRECLUDE THE FILE FROM BEING TOTALY STORED IN MEMORY    03160401
C     DURING EXECUTION OF THIS ROUTINE.                                 03170401
C                                                                       03180401
C                                                                       03190401
C                                                                       03200401
C ****  CREATE-FILE SECTION                                             03210401
      LCON01 = .TRUE.                                                   03220401
      LCON02 = .FALSE.                                                  03230401
70001 FORMAT (I3,I2,I4,I3,2I4,58X,"T","F")                              03240401
70002 FORMAT (I3,I2,I4,I3,2I4,40X,"         T" ,"         F" )          03250401
70003 FORMAT (I3,I2,I4,I3,2I4,47X,".TRUE.",".FALSE.")                   03260401
70004 FORMAT (I3,I2,I4,I3,2I4,56X,".T",".F")                            03270401
70005 FORMAT (I3,I2,I4,I3,2I4,48X,"    .T","    .F")                    03280401
70006 FORMAT (I3,I2,I4,I3,2I4,38X,"THIS IS ALLOWED" ,"FINALLY")         03290401
70007 FORMAT (I3,I2,I4,I3,2I4,48X,"TRUE  ","FALSE ")                    03300401
70008 FORMAT (I3,I2,I4,I3,2I4,40X,"  .TIME.  " ,"  .FIELD. " )          03310401
70009 FORMAT (I3,I2,I4,I3,2I4,07X,  "THIS IS VERY LARGE FIELD FOR INPUT 03320401
     1OF LOGICAL VALUES.")                                              03330401
70010 FORMAT (I3,I2,I4,I3,2I4,55X,"TFTFT")                              03340401
70011 FORMAT (I3,I2,I4,I3,2I4,44X,"   T   T   F   F" )                  03350401
70012 FORMAT (I3,I2,I4,I3,2I4,55X,L5)                                   03360401
70013 FORMAT (I3,I2,I4,I3,2I4,55X,4X,L1)                                03370401
70014 FORMAT (I3,I2,I4,I3,2I4,59X," ")                                  03380401
      DO 4012 I=1,10                                                    03390401
      IRECN  = IRECN + 1                                                03400401
      WRITE (I08, 70001) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        03410401
      IRECN  = IRECN  + 1                                               03420401
      WRITE (I08, 70002) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        03430401
      IRECN  = IRECN  + 1                                               03440401
      WRITE (I08, 70003) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        03450401
      IRECN  = IRECN  + 1                                               03460401
      WRITE (I08, 70004) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        03470401
      IRECN  = IRECN  + 1                                               03480401
      WRITE (I08, 70005) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        03490401
      IRECN  = IRECN  + 1                                               03500401
      WRITE (I08, 70006) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        03510401
      IRECN  = IRECN  + 1                                               03520401
      WRITE (I08, 70007) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        03530401
      IRECN  = IRECN  + 1                                               03540401
      WRITE (I08, 70008) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        03550401
      IRECN  = IRECN  + 1                                               03560401
      WRITE (I08, 70009) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        03570401
      IRECN  = IRECN  + 1                                               03580401
      WRITE (I08, 70010) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        03590401
      IRECN  = IRECN  + 1                                               03600401
      WRITE (I08, 70011) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        03610401
      IRECN  = IRECN  + 1                                               03620401
      WRITE (I08, 70012) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, LCON0103630401
      IRECN  = IRECN  + 1                                               03640401
      WRITE (I08, 70012) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, LCON0203650401
      IRECN  = IRECN  + 1                                               03660401
      WRITE (I08, 70013) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, LCON0103670401
 4012 CONTINUE                                                          03680401
      IRECN  = IRECN  + 1                                               03690401
      IEOF = 9999                                                       03700401
      WRITE (I08, 70014) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF        03710401
      ENDFILE I08                                                       03720401
      REWIND I08                                                        03730401
      WRITE (I02, 90004)                                                03740401
70015 FORMAT ("   FILE I08 HAS BEEN CREATED AND CONTAINS 141 RECORDS" ) 03750401
70016 FORMAT (" ","INCORRECT NUMBER OF RECORDS IN FILE - " ,  I4 ,  " RE03760401
     1CORDS")                                                           03770401
70017 FORMAT (" ","WRITTEN BUT 141 RECORDS SHOULD HAVE BEEN WRITTEN." ) 03780401
      IF (IRECN - 141) 4013, 4014, 4013                                 03790401
 4013 WRITE (I02, 70016) IRECN                                          03800401
      WRITE (I02, 70017)                                                03810401
      GO TO 4015                                                        03820401
 4014 WRITE (I02, 70015)                                                03830401
      WRITE (I02, 90004)                                                03840401
 4015 CONTINUE                                                          03850401
C                                                                       03860401
C **** END-OF-CREATE-FILE SECTION                                       03870401
C                                                                       03880401
C                                                                       03890401
C                                                                       03900401
C     TEST 8 AND 9 VERIFY THAT ON INPUT THE VALUE T AND F IS TRUE       03910401
C     AND FALSE RESPECTIVELY. THE FIELD IS ONE POSITION IN LENGTH AND   03920401
C     USES THE EDIT DESCRIPTOR L1.                                      03930401
C                                                                       03940401
C                                                                       03950401
      LVON01 = .FALSE.                                                  03960401
      LVON02 = .TRUE.                                                   03970401
 0082 FORMAT (78X,L1,L1)                                                03980401
      READ (I08, 0082) LVON01, LVON02                                   03990401
C        THE ABOVE READ AND ASSOCIATED FORMAT STATEMENT IS FOR TESTS 8  04000401
C     AND 9                                                             04010401
C                                                                       04020401
C                                                                       04030401
C     ****  FCVS PROGRAM 401  -  TEST 008  ****                         04040401
C                                                                       04050401
C                                                                       04060401
C        TEST 8 TESTS THE FIELD VALUE T FOR A TRUE CONDITION.           04070401
C                                                                       04080401
C                                                                       04090401
      IVTNUM =   8                                                      04100401
      IF (ICZERO) 30080, 0080, 30080                                    04110401
 0080 CONTINUE                                                          04120401
      IVCOMP = 0                                                        04130401
      IF (LVON01) IVCOMP = 1                                            04140401
      IVCORR = 1                                                        04150401
40080 IF (IVCOMP - 1) 20080, 10080, 20080                               04160401
30080 IVDELE = IVDELE + 1                                               04170401
      WRITE (I02,80000) IVTNUM                                          04180401
      IF (ICZERO) 10080, 0091, 20080                                    04190401
10080 IVPASS = IVPASS + 1                                               04200401
      WRITE (I02,80002) IVTNUM                                          04210401
      GO TO 0091                                                        04220401
20080 IVFAIL = IVFAIL + 1                                               04230401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          04240401
 0091 CONTINUE                                                          04250401
C                                                                       04260401
C     ****  FCVS PROGRAM 401  -  TEST 009  ****                         04270401
C                                                                       04280401
C                                                                       04290401
C        TEST 9 TESTS THE VALUE F FOR A FALSE CONDITION                 04300401
C                                                                       04310401
C                                                                       04320401
      IVTNUM =   9                                                      04330401
      IF (ICZERO) 30090, 0090, 30090                                    04340401
 0090 CONTINUE                                                          04350401
      IVCOMP = 1                                                        04360401
      IF (.NOT. LVON02) IVCOMP = 0                                      04370401
      IVCORR = 0                                                        04380401
40090 IF (IVCOMP - 0) 20090, 10090, 20090                               04390401
30090 IVDELE = IVDELE + 1                                               04400401
      WRITE (I02,80000) IVTNUM                                          04410401
      IF (ICZERO) 10090, 0101, 20090                                    04420401
10090 IVPASS = IVPASS + 1                                               04430401
      WRITE (I02,80002) IVTNUM                                          04440401
      GO TO 0101                                                        04450401
20090 IVFAIL = IVFAIL + 1                                               04460401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          04470401
 0101 CONTINUE                                                          04480401
C                                                                       04490401
C                                                                       04500401
C        THE INPUT FIELD MAY CONSIST OF OPTIONAL BLANKS FOLLOWED BY T OR04510401
C     F. TEST 10 AND 11 VERIFY THAT THE VALUE T OR F PRECEDED BY BLANKS 04520401
C     ON INPUT IS TRUE OR FALSE RESPECTIVELY.  THE EDIT DESCRIPTOR BEING04530401
C     TESTED IS L10 (INPUT FIELD HAS 10 POSITIONS).                     04540401
C                                                                       04550401
C                                                                       04560401
      LVON01 = .FALSE.                                                  04570401
      LVON02 = .TRUE.                                                   04580401
 0102 FORMAT (60X,L10,L10)                                              04590401
      READ (I08, 0102) LVON01, LVON02                                   04600401
C        THE ABOVE READ AND ASSOCIATED  FORMAT STATEMENT IS FOR TESTS 1004610401
C     AND 11                                                            04620401
C                                                                       04630401
C     ****  FCVS PROGRAM 401  -  TEST 010  ****                         04640401
C                                                                       04650401
C                                                                       04660401
C        TEST 10 TESTS A FIELD OF BLANKS FOLLOWED BY A T FOR A TRUE     04670401
C     CONDITION.                                                        04680401
C                                                                       04690401
C                                                                       04700401
      IVTNUM =  10                                                      04710401
      IF (ICZERO) 30100, 0100, 30100                                    04720401
 0100 CONTINUE                                                          04730401
      IVCOMP = 0                                                        04740401
      IF (LVON01) IVCOMP = 1                                            04750401
      IVCORR = 1                                                        04760401
40100 IF (IVCOMP - 1) 20100, 10100, 20100                               04770401
30100 IVDELE = IVDELE + 1                                               04780401
      WRITE (I02,80000) IVTNUM                                          04790401
      IF (ICZERO) 10100, 0111, 20100                                    04800401
10100 IVPASS = IVPASS + 1                                               04810401
      WRITE (I02,80002) IVTNUM                                          04820401
      GO TO 0111                                                        04830401
20100 IVFAIL = IVFAIL + 1                                               04840401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          04850401
 0111 CONTINUE                                                          04860401
C                                                                       04870401
C     ****  FCVS PROGRAM 401  -  TEST 011  ****                         04880401
C                                                                       04890401
C                                                                       04900401
C        TEST 11 TESTS A FIELD OF BLANKS FOLLOWED BY A F FOR A FALSE    04910401
C     CONDITION                                                         04920401
C                                                                       04930401
C                                                                       04940401
      IVTNUM =  11                                                      04950401
      IF (ICZERO) 30110, 0110, 30110                                    04960401
 0110 CONTINUE                                                          04970401
      IVCOMP = 1                                                        04980401
      IF (.NOT. LVON02) IVCOMP = 0                                      04990401
      IVCORR = 0                                                        05000401
40110 IF (IVCOMP - 0) 20110, 10110, 20110                               05010401
30110 IVDELE = IVDELE + 1                                               05020401
      WRITE (I02,80000) IVTNUM                                          05030401
      IF (ICZERO) 10110, 0121, 20110                                    05040401
10110 IVPASS = IVPASS + 1                                               05050401
      WRITE (I02,80002) IVTNUM                                          05060401
      GO TO 0121                                                        05070401
20110 IVFAIL = IVFAIL + 1                                               05080401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          05090401
 0121 CONTINUE                                                          05100401
C                                                                       05110401
C                                                                       05120401
C        TESTS 12 AND 13 VERIFY THAT THE FIELD CONTENTS .TRUE . OR      05130401
C     .FALSE. ARE ACCEPTABLE INPUT FORMS AND THE VALUE OF THE INTERNAL  05140401
C     DATUM IS TRUE OR FALSE RESPECTIVELY.                              05150401
C                                                                       05160401
C                                                                       05170401
      LVON01 = .FALSE.                                                  05180401
      LVON02 = .TRUE.                                                   05190401
 0122 FORMAT (67X,L6,L7)                                                05200401
      READ (I08, 0122) LVON01, LVON02                                   05210401
C        THE ABOVE READ AND ASSOCIATED FORMAT STATEMENT IS FOR TESTS 12 05220401
C     AND 13                                                            05230401
C                                                                       05240401
C     ****  FCVS PROGRAM 401  -  TEST 012  ****                         05250401
C                                                                       05260401
C                                                                       05270401
C        TEST 12 TESTS THE INPUT FIELD CONTENTS .TRUE. FOR A TRUE       05280401
C     CONDITION.                                                        05290401
C                                                                       05300401
C                                                                       05310401
      IVTNUM =  12                                                      05320401
      IF (ICZERO) 30120, 0120, 30120                                    05330401
 0120 CONTINUE                                                          05340401
      IVCOMP = 0                                                        05350401
      IF (LVON01) IVCOMP = 1                                            05360401
      IVCORR = 1                                                        05370401
40120 IF (IVCOMP - 1) 20120, 10120, 20120                               05380401
30120 IVDELE = IVDELE + 1                                               05390401
      WRITE (I02,80000) IVTNUM                                          05400401
      IF (ICZERO) 10120, 0131, 20120                                    05410401
10120 IVPASS = IVPASS + 1                                               05420401
      WRITE (I02,80002) IVTNUM                                          05430401
      GO TO 0131                                                        05440401
20120 IVFAIL = IVFAIL + 1                                               05450401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          05460401
 0131 CONTINUE                                                          05470401
C                                                                       05480401
C     ****  FCVS PROGRAM 401  -  TEST 013  ****                         05490401
C                                                                       05500401
C                                                                       05510401
C        TEST 13 TESTS THE INPUT FIELD CONTENTS .FALSE. FOR A FALSE     05520401
C     CONDITION.                                                        05530401
C                                                                       05540401
C                                                                       05550401
      IVTNUM =  13                                                      05560401
      IF (ICZERO) 30130, 0130, 30130                                    05570401
 0130 CONTINUE                                                          05580401
      IVCOMP = 1                                                        05590401
      IF (.NOT. LVON02) IVCOMP = 0                                      05600401
      IVCORR = 0                                                        05610401
40130 IF (IVCOMP - 0) 20130, 10130, 20130                               05620401
30130 IVDELE = IVDELE + 1                                               05630401
      WRITE (I02,80000) IVTNUM                                          05640401
      IF (ICZERO) 10130, 0141, 20130                                    05650401
10130 IVPASS = IVPASS + 1                                               05660401
      WRITE (I02,80002) IVTNUM                                          05670401
      GO TO 0141                                                        05680401
20130 IVFAIL = IVFAIL + 1                                               05690401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          05700401
 0141 CONTINUE                                                          05710401
C                                                                       05720401
C                                                                       05730401
C        TESTS 14 AND 15 VERIFY THAT VALUE .T OR .F ARE ACCEPTABLE INPUT05740401
C     FORMS AND THAT THE VALUE OF THE INTERNAL DATUM IS TRUE OR  FALSE  05750401
C     RESPECTIVELY.                                                     05760401
C                                                                       05770401
C                                                                       05780401
      LVON01 = .FALSE.                                                  05790401
      LVON02 = .TRUE.                                                   05800401
 0142 FORMAT (76X,L2,L2)                                                05810401
      READ (I08, 0142) LVON01, LVON02                                   05820401
C        THE ABOVE READ STATEMENT AND ASSOCIATED FORMAT IS FOR TESTS    05830401
C     14 AND 15                                                         05840401
C                                                                       05850401
C                                                                       05860401
C     ****  FCVS PROGRAM 401  -  TEST 014  ****                         05870401
C                                                                       05880401
C        TEST 14 TESTS THE INPUT FIELD CONTENTS .T FOR A TRUE CONDITION 05890401
C                                                                       05900401
C                                                                       05910401
      IVTNUM =  14                                                      05920401
      IF (ICZERO) 30140, 0140, 30140                                    05930401
 0140 CONTINUE                                                          05940401
      IVCOMP = 0                                                        05950401
      IF (LVON01) IVCOMP = 1                                            05960401
      IVCORR = 1                                                        05970401
40140 IF (IVCOMP - 1) 20140, 10140, 20140                               05980401
30140 IVDELE = IVDELE + 1                                               05990401
      WRITE (I02,80000) IVTNUM                                          06000401
      IF (ICZERO) 10140, 0151, 20140                                    06010401
10140 IVPASS = IVPASS + 1                                               06020401
      WRITE (I02,80002) IVTNUM                                          06030401
      GO TO 0151                                                        06040401
20140 IVFAIL = IVFAIL + 1                                               06050401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          06060401
 0151 CONTINUE                                                          06070401
C                                                                       06080401
C     ****  FCVS PROGRAM 401  -  TEST 015  ****                         06090401
C                                                                       06100401
C                                                                       06110401
C        TEST 15 TESTS THE INPUT FIELD CONTENTS .F FOR A FALSE CONDITION06120401
C                                                                       06130401
C                                                                       06140401
      IVTNUM =  15                                                      06150401
      IF (ICZERO) 30150, 0150, 30150                                    06160401
 0150 CONTINUE                                                          06170401
      IVCOMP = 1                                                        06180401
      IF (.NOT. LVON02) IVCOMP = 0                                      06190401
      IVCORR = 0                                                        06200401
40150 IF (IVCOMP - 0) 20150, 10150, 20150                               06210401
30150 IVDELE = IVDELE + 1                                               06220401
      WRITE (I02,80000) IVTNUM                                          06230401
      IF (ICZERO) 10150, 0161, 20150                                    06240401
10150 IVPASS = IVPASS + 1                                               06250401
      WRITE (I02,80002) IVTNUM                                          06260401
      GO TO 0161                                                        06270401
20150 IVFAIL = IVFAIL + 1                                               06280401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          06290401
 0161 CONTINUE                                                          06300401
C                                                                       06310401
C                                                                       06320401
C        TEST 16 AND 17 VERIFY THAT VALUE .T OR .F PRECEDED BY BLANKS   06330401
C     ARE ACCEPTABLE INPUT FORMS AND THE VALUE OF THE INTERNAL DATA     06340401
C     AS A RESULT OF THE READ ARE TRUE AND FALSE RESPECTIVELY.          06350401
C                                                                       06360401
C                                                                       06370401
      LVON01 = .FALSE.                                                  06380401
      LVON02 = .TRUE.                                                   06390401
 0162 FORMAT (68X,L6,L6)                                                06400401
      READ (I08, 0162) LVON01, LVON02                                   06410401
C        THE ABOVE READ AND ASSOCIATED FORMAT STATEMENT ARE FOR TESTS   06420401
C     16 AND 17.                                                        06430401
C                                                                       06440401
C                                                                       06450401
C     ****  FCVS PROGRAM 401  -  TEST 016  ****                         06460401
C                                                                       06470401
C        TEST 16 TESTS THE INPUT FIELD CONTENTS .T PRECEDED BY 4 BLANKS 06480401
C     FOR A TRUE CONDITION.                                             06490401
C                                                                       06500401
C                                                                       06510401
      IVTNUM =  16                                                      06520401
      IF (ICZERO) 30160, 0160, 30160                                    06530401
 0160 CONTINUE                                                          06540401
      IVCOMP = 0                                                        06550401
      IF (LVON01) IVCOMP = 1                                            06560401
      IVCORR = 1                                                        06570401
40160 IF (IVCOMP - 1) 20160, 10160, 20160                               06580401
30160 IVDELE = IVDELE + 1                                               06590401
      WRITE (I02,80000) IVTNUM                                          06600401
      IF (ICZERO) 10160, 0171, 20160                                    06610401
10160 IVPASS = IVPASS + 1                                               06620401
      WRITE (I02,80002) IVTNUM                                          06630401
      GO TO 0171                                                        06640401
20160 IVFAIL = IVFAIL + 1                                               06650401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          06660401
 0171 CONTINUE                                                          06670401
C                                                                       06680401
C     ****  FCVS PROGRAM 401  -  TEST 017  ****                         06690401
C                                                                       06700401
C                                                                       06710401
C        TEST 17 TESTS THE INPUT FIELD CONTENTS .F PRECEDED BY 4 BLANKS 06720401
C     FOR A FALSE CONDITION.                                            06730401
C                                                                       06740401
C                                                                       06750401
      IVTNUM =  17                                                      06760401
      IF (ICZERO) 30170, 0170, 30170                                    06770401
 0170 CONTINUE                                                          06780401
      IVCOMP = 1                                                        06790401
      IF (.NOT. LVON02) IVCOMP = 0                                      06800401
      IVCORR = 0                                                        06810401
40170 IF (IVCOMP - 0) 20170, 10170, 20170                               06820401
30170 IVDELE = IVDELE + 1                                               06830401
      WRITE (I02,80000) IVTNUM                                          06840401
      IF (ICZERO) 10170, 0181, 20170                                    06850401
10170 IVPASS = IVPASS + 1                                               06860401
      WRITE (I02,80002) IVTNUM                                          06870401
      GO TO 0181                                                        06880401
20170 IVFAIL = IVFAIL + 1                                               06890401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          06900401
 0181 CONTINUE                                                          06910401
C                                                                       06920401
C                                                                       06930401
C        THE INPUT FIELD MAY HAVE T OR F FOLLOWED BY ADDITIONAL         06940401
C     CHARACTERS IN THE FIELD.  TESTS 18 THROUGH 24 VERIFY THAT T OR F  06950401
C     FOLLOWED BY ADDITIONAL CHARACTERS ARE ACCEPTABLE INPUT FORMS AND  06960401
C     THE VALUE OF THE LOGICAL ENTITIES AS A RESULT OF THE READ ARE TRUE06970401
C     AND FALSE RESPECTIVELY.                                           06980401
C                                                                       06990401
C                                                                       07000401
      LVON01 = .FALSE.                                                  07010401
      LVON02 = .TRUE.                                                   07020401
 0182 FORMAT (58X,L15,L7)                                               07030401
      READ (I08, 0182) LVON01, LVON02                                   07040401
C        THE ABOVE READ AND ASSOCIATED FORMAT STATEMENT ARE FOR TESTS   07050401
C     18 AND 19.                                                        07060401
C                                                                       07070401
C     ****  FCVS PROGRAM 401  -  TEST 018  ****                         07080401
C                                                                       07090401
C                                                                       07100401
C        TEST 18 TESTS THE INPUT FIELD CONTENTS OF 'THIS IS ALLOWED'    07110401
C     FOR A TRUE CONDITION.                                             07120401
C                                                                       07130401
C                                                                       07140401
      IVTNUM =  18                                                      07150401
      IF (ICZERO) 30180, 0180, 30180                                    07160401
 0180 CONTINUE                                                          07170401
      IVCOMP = 0                                                        07180401
      IF (LVON01) IVCOMP = 1                                            07190401
      IVCORR = 1                                                        07200401
40180 IF (IVCOMP - 1) 20180, 10180, 20180                               07210401
30180 IVDELE = IVDELE + 1                                               07220401
      WRITE (I02,80000) IVTNUM                                          07230401
      IF (ICZERO) 10180, 0191, 20180                                    07240401
10180 IVPASS = IVPASS + 1                                               07250401
      WRITE (I02,80002) IVTNUM                                          07260401
      GO TO 0191                                                        07270401
20180 IVFAIL = IVFAIL + 1                                               07280401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          07290401
 0191 CONTINUE                                                          07300401
C                                                                       07310401
C     ****  FCVS PROGRAM 401  -  TEST 019  ****                         07320401
C                                                                       07330401
C                                                                       07340401
C        TEST 19 TEST THE INPUT FIELD CONTENTS 'FINALLY' FOR A          07350401
C     FALSE CONDITION.                                                  07360401
C                                                                       07370401
C                                                                       07380401
      IVTNUM =  19                                                      07390401
      IF (ICZERO) 30190, 0190, 30190                                    07400401
 0190 CONTINUE                                                          07410401
      IVCOMP = 1                                                        07420401
      IF (.NOT. LVON02) IVCOMP = 0                                      07430401
      IVCORR = 0                                                        07440401
40190 IF (IVCOMP - 0) 20190, 10190, 20190                               07450401
30190 IVDELE = IVDELE + 1                                               07460401
      WRITE (I02,80000) IVTNUM                                          07470401
      IF (ICZERO) 10190, 0201, 20190                                    07480401
10190 IVPASS = IVPASS + 1                                               07490401
      WRITE (I02,80002) IVTNUM                                          07500401
      GO TO 0201                                                        07510401
20190 IVFAIL = IVFAIL + 1                                               07520401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          07530401
 0201 CONTINUE                                                          07540401
C                                                                       07550401
C     ****  FCVS PROGRAM 401  -  TEST 020  ****                         07560401
C                                                                       07570401
C                                                                       07580401
      IVTNUM =  20                                                      07590401
      IF (ICZERO) 30200, 0200, 30200                                    07600401
 0200 CONTINUE                                                          07610401
      LVON01 = .FALSE.                                                  07620401
      LVON02 = .TRUE.                                                   07630401
 0202 FORMAT (68X,L6,L6)                                                07640401
      READ (I08, 0202) LVON01, LVON02                                   07650401
C        THE ABOVE READ AND ASSOCIATED FORMAT STATEMENTS ARE FOR TESTS  07660401
C     20 AND 21.                                                        07670401
C                                                                       07680401
C        TEST 20 TESTS THE INPUT FIELD CONTENTS OF 'TRUE  ' (T FOLLOWED 07690401
C     BY CHARACTERS WHICH INCLUDE SPACES) FOR A TRUE CONDITION.         07700401
C                                                                       07710401
      IVCOMP = 0                                                        07720401
      IF (LVON01) IVCOMP = 1                                            07730401
      IVCORR = 1                                                        07740401
40200 IF (IVCOMP - 1) 20200, 10200, 20200                               07750401
30200 IVDELE = IVDELE + 1                                               07760401
      WRITE (I02,80000) IVTNUM                                          07770401
      IF (ICZERO) 10200, 0211, 20200                                    07780401
10200 IVPASS = IVPASS + 1                                               07790401
      WRITE (I02,80002) IVTNUM                                          07800401
      GO TO 0211                                                        07810401
20200 IVFAIL = IVFAIL + 1                                               07820401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          07830401
 0211 CONTINUE                                                          07840401
C                                                                       07850401
C     ****  FCVS PROGRAM 401  -  TEST 021  ****                         07860401
C                                                                       07870401
C                                                                       07880401
C        TEST 21 TESTS THE INPUT FIELD CONTENTS OF 'FALSE '             07890401
C     (F FOLLOWED BY CHARACTERS WHICH INCLUDE SPACES) FOR A FALSE       07900401
C     CONDITION.                                                        07910401
C                                                                       07920401
C                                                                       07930401
      IVTNUM =  21                                                      07940401
      IF (ICZERO) 30210, 0210, 30210                                    07950401
 0210 CONTINUE                                                          07960401
      IVCOMP = 1                                                        07970401
      IF (.NOT. LVON02) IVCOMP = 0                                      07980401
      IVCORR = 0                                                        07990401
40210 IF (IVCOMP - 0) 20210, 10210, 20210                               08000401
30210 IVDELE = IVDELE + 1                                               08010401
      WRITE (I02,80000) IVTNUM                                          08020401
      IF (ICZERO) 10210, 0221, 20210                                    08030401
10210 IVPASS = IVPASS + 1                                               08040401
      WRITE (I02,80002) IVTNUM                                          08050401
      GO TO 0221                                                        08060401
20210 IVFAIL = IVFAIL + 1                                               08070401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          08080401
 0221 CONTINUE                                                          08090401
C                                                                       08100401
C     ****  FCVS PROGRAM 401  -  TEST 022  ****                         08110401
C                                                                       08120401
C                                                                       08130401
C                                                                       08140401
      IVTNUM =  22                                                      08150401
      IF (ICZERO) 30220, 0220, 30220                                    08160401
 0220 CONTINUE                                                          08170401
      LVON01 = .FALSE.                                                  08180401
      LVON02 = .TRUE.                                                   08190401
 0222 FORMAT (60X,L10,L10)                                              08200401
      READ (I08, 0222) LVON01, LVON02                                   08210401
C        THE ABOVE READ AND ASSOCIATED FORMAT STATEMENT ARE FOR TESTS   08220401
C     22 AND 23.                                                        08230401
C                                                                       08240401
C        TEST 22 TESTS THE INPUT FIELD CONTENTS OF '  .TIME.  ' (.T     08250401
C     FOLLOWED BY CHARACTERS WHICH INCLUDE SPACES AND PERIODS) FOR A    08260401
C     TRUE CONDITION.                                                   08270401
C                                                                       08280401
      IVCOMP = 0                                                        08290401
      IF (LVON01) IVCOMP = 1                                            08300401
      IVCORR = 1                                                        08310401
40220 IF (IVCOMP - 1) 20220, 10220, 20220                               08320401
30220 IVDELE = IVDELE + 1                                               08330401
      WRITE (I02,80000) IVTNUM                                          08340401
      IF (ICZERO) 10220, 0231, 20220                                    08350401
10220 IVPASS = IVPASS + 1                                               08360401
      WRITE (I02,80002) IVTNUM                                          08370401
      GO TO 0231                                                        08380401
20220 IVFAIL = IVFAIL + 1                                               08390401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          08400401
 0231 CONTINUE                                                          08410401
C                                                                       08420401
C     ****  FCVS PROGRAM 401  -  TEST 023  ****                         08430401
C                                                                       08440401
C                                                                       08450401
C        TEST 23 TESTS THE INPUT FIELD CONTENTS OF '  .FIELD. ' (.F     08460401
C     FOLLOWED BY CHARACTERS WHICH INCLUDE SPACES AND PERIODS)  FOR A   08470401
C     FALSE CONDITION.                                                  08480401
C                                                                       08490401
C                                                                       08500401
      IVTNUM =  23                                                      08510401
      IF (ICZERO) 30230, 0230, 30230                                    08520401
 0230 CONTINUE                                                          08530401
      IVCOMP = 1                                                        08540401
      IF (.NOT. LVON02) IVCOMP = 0                                      08550401
      IVCORR = 0                                                        08560401
40230 IF (IVCOMP - 0) 20230, 10230, 20230                               08570401
30230 IVDELE = IVDELE + 1                                               08580401
      WRITE (I02,80000) IVTNUM                                          08590401
      IF (ICZERO) 10230, 0241, 20230                                    08600401
10230 IVPASS = IVPASS + 1                                               08610401
      WRITE (I02,80002) IVTNUM                                          08620401
      GO TO 0241                                                        08630401
20230 IVFAIL = IVFAIL + 1                                               08640401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          08650401
 0241 CONTINUE                                                          08660401
C                                                                       08670401
C     ****  FCVS PROGRAM 401  -  TEST 024  ****                         08680401
C                                                                       08690401
C                                                                       08700401
C                                                                       08710401
      IVTNUM =  24                                                      08720401
      IF (ICZERO) 30240, 0240, 30240                                    08730401
 0240 CONTINUE                                                          08740401
      LVON01 = .FALSE.                                                  08750401
 0242 FORMAT (27X,L53)                                                  08760401
      READ (I08, 0242) LVON01                                           08770401
C                                                                       08780401
C        TEST 24 TESTS USE OF A LARGE INPUT FIELD WITH THE CONTENTS     08790401
C     'THIS IS A VERY LARGE FIELD FOR INPUT OF LOGICAL VALUES. '.  THE  08800401
C     EDIT DESCRIPTOR IS L53 AND THE VALUE OF THE INTERNAL DATUM AS A   08810401
C     RESULT OF THE READ SHOULD GIVE A TRUE CONDITION.                  08820401
C                                                                       08830401
      IVCOMP = 0                                                        08840401
      IF (LVON01) IVCOMP = 1                                            08850401
      IVCORR = 1                                                        08860401
40240 IF (IVCOMP - 1) 20240, 10240, 20240                               08870401
30240 IVDELE = IVDELE + 1                                               08880401
      WRITE (I02,80000) IVTNUM                                          08890401
      IF (ICZERO) 10240, 0251, 20240                                    08900401
10240 IVPASS = IVPASS + 1                                               08910401
      WRITE (I02,80002) IVTNUM                                          08920401
      GO TO 0251                                                        08930401
20240 IVFAIL = IVFAIL + 1                                               08940401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          08950401
 0251 CONTINUE                                                          08960401
C                                                                       08970401
C     ****  FCVS PROGRAM 401  -  TEST 025  ****                         08980401
C                                                                       08990401
C                                                                       09000401
C        TEST 25 TESTS USE OF THE OPTIONAL REPEAT SPECIFICATION  WITH   09010401
C     THE L EDIT DESCRIPTOR.  THE INPUT FIELD IS 1 POSITION IN LENGTH.  09020401
C                                                                       09030401
C                                                                       09040401
      IVTNUM =  25                                                      09050401
      IF (ICZERO) 30250, 0250, 30250                                    09060401
 0250 CONTINUE                                                          09070401
      LAON15(1) = .FALSE.                                               09080401
      LAON15(2) = .TRUE.                                                09090401
      LAON15(3) = .FALSE.                                               09100401
      LAON15(4) = .TRUE.                                                09110401
      LAON15(5) = .FALSE.                                               09120401
 0252 FORMAT (75X,5L1)                                                  09130401
      READ (I08, 0252) (LAON15(I), I = 1, 5)                            09140401
      IVCOMP = 1                                                        09150401
      IVCORR = 2310                                                     09160401
      IF (LAON15(1))       IVCOMP = IVCOMP * 2                          09170401
      IF (.NOT. LAON15(2))  IVCOMP = IVCOMP * 3                         09180401
      IF (LAON15(3))       IVCOMP = IVCOMP * 5                          09190401
      IF (.NOT. LAON15(4)) IVCOMP = IVCOMP * 7                          09200401
      IF (LAON15(5))       IVCOMP = IVCOMP * 11                         09210401
40250 IF (IVCOMP - 2310) 20250, 10250, 20250                            09220401
30250 IVDELE = IVDELE + 1                                               09230401
      WRITE (I02,80000) IVTNUM                                          09240401
      IF (ICZERO) 10250, 0261, 20250                                    09250401
10250 IVPASS = IVPASS + 1                                               09260401
      WRITE (I02,80002) IVTNUM                                          09270401
      GO TO 0261                                                        09280401
20250 IVFAIL = IVFAIL + 1                                               09290401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          09300401
 0261 CONTINUE                                                          09310401
C                                                                       09320401
C     ****  FCVS PROGRAM 401  -  TEST 026  ****                         09330401
C                                                                       09340401
C                                                                       09350401
C        TEST 26 IS SIMILAR  TO TEST 25 EXCEPT  THAT EACH INPUT FIELD   09360401
C     CONTAINING LOGICAL DATA IS 4 CHARACTERS IN LENGTH.  THE  EDIT     09370401
C     DESCRIPTOR IS 4L4.                                                09380401
C                                                                       09390401
C                                                                       09400401
      IVTNUM =  26                                                      09410401
      IF (ICZERO) 30260, 0260, 30260                                    09420401
 0260 CONTINUE                                                          09430401
      LAON15(1) = .FALSE.                                               09440401
      LAON15(2) = .FALSE.                                               09450401
      LAON15(3) = .TRUE.                                                09460401
      LAON15(4) = .TRUE.                                                09470401
 0262  FORMAT (64X,4L4)                                                 09480401
      READ (I08, 0262) (LAON15(I), I = 1, 4)                            09490401
      IVCOMP = 1                                                        09500401
      IVCORR = 210                                                      09510401
      IF (LAON15 (1))      IVCOMP = IVCOMP * 2                          09520401
      IF (LAON15(2))       IVCOMP = IVCOMP * 3                          09530401
      IF (.NOT. LAON15(3)) IVCOMP = IVCOMP * 5                          09540401
      IF (.NOT. LAON15(4)) IVCOMP = IVCOMP * 7                          09550401
40260 IF (IVCOMP - 210) 20260, 10260, 20260                             09560401
30260 IVDELE = IVDELE + 1                                               09570401
      WRITE (I02,80000) IVTNUM                                          09580401
      IF (ICZERO) 10260, 0271, 20260                                    09590401
10260 IVPASS = IVPASS + 1                                               09600401
      WRITE (I02,80002) IVTNUM                                          09610401
      GO TO 0271                                                        09620401
20260 IVFAIL = IVFAIL + 1                                               09630401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          09640401
 0271 CONTINUE                                                          09650401
C                                                                       09660401
C                                                                       09670401
C        THE PURPOSE OF TESTS 27 THROUGH 29 IS TO VERIFY THAT RECORDS   09680401
C     CAN BE WRITTEN USING ONE EDIT DESCRIPTOR FORM AND READ USING      09690401
C     ANOTHER FORM.                                                     09700401
C                                                                       09710401
C                                                                       09720401
C                                                                       09730401
C     ****  FCVS PROGRAM 401  -  TEST 027  ****                         09740401
C                                                                       09750401
C                                                                       09760401
C        TEST 27 READS  A  RECORD WITH THE EDIT DESCRIPTORS 4X,L1.  THE 09770401
C     RECORD WAS  WRITTEN  USING  THE  DESCRIPTOR L5.  THE VALUE OF THE 09780401
C     LOGICAL ENTITIES AS A RESULT OF THE READ SHOULD BE TRUE.          09790401
C                                                                       09800401
C                                                                       09810401
      IVTNUM =  27                                                      09820401
      IF (ICZERO) 30270, 0270, 30270                                    09830401
 0270 CONTINUE                                                          09840401
      LVON01 = .FALSE.                                                  09850401
 0272 FORMAT (55X,20X,4X,L1)                                            09860401
      READ (I08, 0272) LVON01                                           09870401
      IVCOMP = 0                                                        09880401
      IVCORR = 1                                                        09890401
      IF (LVON01) IVCOMP = 1                                            09900401
40270 IF (IVCOMP - 1) 20270, 10270, 20270                               09910401
30270 IVDELE = IVDELE + 1                                               09920401
      WRITE (I02,80000) IVTNUM                                          09930401
      IF (ICZERO) 10270, 0281, 20270                                    09940401
10270 IVPASS = IVPASS + 1                                               09950401
      WRITE (I02,80002) IVTNUM                                          09960401
      GO TO 0281                                                        09970401
20270 IVFAIL = IVFAIL + 1                                               09980401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          09990401
 0281 CONTINUE                                                          10000401
C                                                                       10010401
C     ****  FCVS PROGRAM 401  -  TEST 028  ****                         10020401
C                                                                       10030401
C        TEST 28 READS A RECORD WITH THE EDIT DESCRIPTOR 4X,L1.  THE    10040401
C     RECORD WAS WRITTEN USING THE EDIT DESCRIPTOR L5.  THIS TEST IS    10050401
C     SIMILAR TO TEST 27 EXCEPT THE VALUE OF THE LOGICAL ENTITIES AS A  10060401
C     RESULT OF THE READ SHOULD BE FALSE.                               10070401
C                                                                       10080401
C                                                                       10090401
      IVTNUM =  28                                                      10100401
      IF (ICZERO) 30280, 0280, 30280                                    10110401
 0280 CONTINUE                                                          10120401
      LVON02 = .TRUE.                                                   10130401
 0282 FORMAT (55X,20X,4X,L1)                                            10140401
      READ (I08, 0282) LVON02                                           10150401
      IVCOMP = 1                                                        10160401
      IVCORR = 0                                                        10170401
      IF (.NOT. LVON02) IVCOMP = 0                                      10180401
40280 IF (IVCOMP - 0) 20280, 10280, 20280                               10190401
30280 IVDELE = IVDELE + 1                                               10200401
      WRITE (I02,80000) IVTNUM                                          10210401
      IF (ICZERO) 10280, 0291, 20280                                    10220401
10280 IVPASS = IVPASS + 1                                               10230401
      WRITE (I02,80002) IVTNUM                                          10240401
      GO TO 0291                                                        10250401
20280 IVFAIL = IVFAIL + 1                                               10260401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          10270401
 0291 CONTINUE                                                          10280401
C                                                                       10290401
C     ****  FCVS PROGRAM 401  -  TEST 029  ****                         10300401
C                                                                       10310401
C                                                                       10320401
C        TEST 29 READS A RECORD WITH THE EDIT DESCRIPTOR L5.  THE       10330401
C     RECORD WAS WRITTEN USING THE EDIT DESCRIPTORS 4X,L1.  THE VALUE   10340401
C     OF INTERNAL DATUM AS A RESULT OF THE READ SHOULD BE TRUE.         10350401
C                                                                       10360401
C                                                                       10370401
      IVTNUM =  29                                                      10380401
      IF (ICZERO) 30290, 0290, 30290                                    10390401
 0290 CONTINUE                                                          10400401
      LVON01 = .FALSE.                                                  10410401
 0292 FORMAT (55X,20X,L5)                                               10420401
      READ (I08, 0292) LVON01                                           10430401
      IVCOMP = 0                                                        10440401
      IVCORR = 1                                                        10450401
      IF (LVON01) IVCOMP = 1                                            10460401
40290 IF (IVCOMP - 1) 20290, 10290, 20290                               10470401
30290 IVDELE = IVDELE + 1                                               10480401
      WRITE (I02,80000) IVTNUM                                          10490401
      IF (ICZERO) 10290, 0301, 20290                                    10500401
10290 IVPASS = IVPASS + 1                                               10510401
      WRITE (I02,80002) IVTNUM                                          10520401
      GO TO 0301                                                        10530401
20290 IVFAIL = IVFAIL + 1                                               10540401
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR                          10550401
 0301 CONTINUE                                                          10560401
C                                                                       10570401
C                                                                       10580401
C                                                                       10590401
C        THE FOLLOWING SOURCE CODE BRACKETED BY THE COMMENT LINES       10600401
C     *****  BEGIN-FILE-DUMP SECTION AND *****  END-FILE-DUMP SECTION   10610401
C     MAY OR MAY NOT  APPEAR AS COMMENTS IN THE SOURCE PROGRAM.         10620401
C     THIS CODE IS OPTIONAL AND BY DEFAULT IT IS AUTOMATICALLY COMMENTED10630401
C     OUT BY THE EXECUTIVE ROUTINE.  A DUMP OF THE FILE USED BY THIS    10640401
C     ROUTINE IS PROVIDED BY USING THE *OPT1 EXECUTIVE ROUTINE CONTROL  10650401
C     CARD.  IF THE OPTIONAL CODE IS SELECTED THE ROUTINE WILL DUMP     10660401
C     THE CONTENTS OF THE FILE TO THE PRINT FILE FOLLOWING THE TEST     10670401
C     REPORT AND BEFORE THE TEST REPORT SUMMARY.                        10680401
C                                                                       10690401
C   *****   BEGIN-FILE-DUMP SECTION     *****                           10700401
C                                                                       10710401
C                                                                       10720401
CDB**                                                                   10730401
C     REWIND I08                                                        10740401
C     ITOTR = 141                                                       10750401
C     IRNUM = 1                                                         10760401
C     ILUN  = I08                                                       10770401
C7701 FORMAT     (I3,I2,I4,I3,2I4,60A1)                                 10780401
C7702 FORMAT (" ",I3,I2,I4,I3,2I4,60A1)                                 10790401
C7703 FORMAT (10X,"FILE ",I2," HAS ",I3," RECORDS - OK" )               10800401
C7704 FORMAT (10X,"FILE ",I2," HAS ",I3," RECORDS - THERE SHOULD BE " , 10810401
C    1I3,9H RECORDS.)                                                   10820401
C     DO 7771 IRNUM = 1, ITOTR                                          10830401
C     READ (ILUN, 7701)  IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       10840401
C    1     (IDUMP(ICH), ICH = 1,60)                                     10850401
C     WRITE (I02, 7702)  IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       10860401
C    1     (IDUMP(ICH), ICH = 1,60)                                     10870401
C     IF (IEOF .EQ. 9999)   GO TO 7772                                  10880401
C7771 CONTINUE                                                          10890401
C     GO TO 7775                                                        10900401
C7772 IF (IRNUM - ITOTR)   7774, 7773, 7775                             10910401
C7773 WRITE  (I02,  7703)  ILUN, IRNUM                                  10920401
C     GO TO 7779                                                        10930401
C7774 WRITE (I02,  7704) ILUN, IRNUM, ITOTR                             10940401
C     GO TO 7779                                                        10950401
C7775 DO 7776  I = 1,20                                                 10960401
C     READ (ILUN, 7701)  IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       10970401
C    1     (IDUMP(ICH), ICH = 1,60)                                     10980401
C     WRITE (I02, 7702)  IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF,       10990401
C    1     (IDUMP(ICH), ICH = 1,60)                                     11000401
C     IRNUM = IRNUM + 1                                                 11010401
C     IF (IEOF .EQ. 9999)  GO TO 7777                                   11020401
C7776 CONTINUE                                                          11030401
C7777 WRITE  (I02 ,  7704)  ILUN, IRNUM, ITOTR                          11040401
C7779 CONTINUE                                                          11050401
CDE**   *  END-FILE-DUMP SECTION   *                                    11060401
C        TEST  029 IS THE LAST TEST IN THIS PROGRAM.  THE ROUTINE SHOULD11070401
C     HAVE MADE 29 EXPLICIT TESTS AND PROCESSED ONE FILE CONNECTED  FOR 11080401
C     SEQUENTIAL ACCESS                                                 11090401
C                                                                       11100401
C                                                                       11110401
C                                                                       11120401
C     WRITE OUT TEST SUMMARY                                            11130401
C                                                                       11140401
      WRITE (I02,90004)                                                 11150401
      WRITE (I02,90014)                                                 11160401
      WRITE (I02,90004)                                                 11170401
      WRITE (I02,90000)                                                 11180401
      WRITE (I02,90004)                                                 11190401
      WRITE (I02,90020) IVFAIL                                          11200401
      WRITE (I02,90022) IVPASS                                          11210401
      WRITE (I02,90024) IVDELE                                          11220401
      STOP                                                              11230401
90001 FORMAT (" ",24X,"FM401")                                          11240401
90000 FORMAT (" ",20X,"END OF PROGRAM FM401" )                          11250401
C                                                                       11260401
C     FORMATS FOR TEST DETAIL LINES                                     11270401
C                                                                       11280401
80000 FORMAT (" ",4X,I5,6X,"DELETED")                                   11290401
80002 FORMAT (" ",4X,I5,7X,"PASS")                                      11300401
80010 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6)                         11310401
80012 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5)                    11320401
80018 FORMAT (" ",4X,I5,7X,"FAIL",2X,A14,1X,A14)                        11330401
C                                                                       11340401
C     FORMAT STATEMENTS FOR PAGE HEADERS                                11350401
C                                                                       11360401
90002 FORMAT ("1")                                                      11370401
90004 FORMAT (" ")                                                      11380401
90006 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" )            11390401
90008 FORMAT (" ",21X,"VERSION 2.1" )                                   11400401
90010 FORMAT (" ",8X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" )         11410401
90012 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL",5X,"COMPUTED",8X,"CORRECT")  11420401
90014 FORMAT (" ",5X,"----------------------------------------------" ) 11430401
90016 FORMAT (" ",18X,"SUBSET LEVEL TEST" )                             11440401
C                                                                       11450401
C     FORMAT STATEMENTS FOR RUN SUMMARY                                 11460401
C                                                                       11470401
90020 FORMAT (" ",19X,I5," TESTS FAILED" )                              11480401
90022 FORMAT (" ",19X,I5," TESTS PASSED" )                              11490401
90024 FORMAT (" ",19X,I5," TESTS DELETED" )                             11500401
      END                                                               11510401