PROGRAM FM200 00010200 C 00020200 C 00030200 C THIS ROUTINE IS THE FIRST AUDIT PROGRAM TO CONTAIN A PROGRAM 00040200 C STATEMENT. THE FOLLOWING FEATURES FROM CHAPTER 3., CHARACTERS, 00050200 C LINES AND EXECUTION SEQUENCE ARE TESTED. 00060200 C 00070200 C (1) ASTERISK (*) IN COLUMN 1 TO DESIGNATE A COMMENT LINE. 00080200 C (2) USE OF NON-FORTRAN CHARACTERS WITHIN A COMMENT LINE. 00090200 C (3) STATEMENT LABELS ON NONEXECUTABLE STATEMENTS. 00100200 C (4) DIGIT 0 IN COLUMN 6 OF AN INITIAL LINE. 00110200 C (5) CONTINUATION LINES - MAXIMUM OF NINE CONTINUATION LINES 00120200 C (660 CHARACTERS). 00130200 C (6) BLANK CHARACTERS WITHIN STATEMENTS. 00140200 C (7) BLANK COMMENT LINE, BLANK CHARACTERS IN COLUMNS 1-72. 00150200 C 00160200 C THE BASIC FEATURES OF SUBSET FORTRAN WHICH ARE TESTED BY THIS 00170200 C PROGRAM ARE USED THROUGHOUT THE REST OF THE SUBSET ROUTINES. 00180200 C 00190200 C REFERENCES 00200200 C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00210200 C X3.9-1978 00220200 C 00230200 C SECTION 3.1.6, BLANK CHARACTER 00240200 C SECTION 3.2.1, COMMENT LINE 00250200 C SECTION 3.2.2, INITIAL LINE 00260200 C SECTION 3.2.3, CONTINUATION LINE 00270200 C SECTION 3.3, STATEMENTS 00280200 C SECTION 3.4, STATEMENT LABEL 00290200 C SECTION 14.1, PROGRAM STATEMENT 00300200 C 00310200 C 00320200 C ******************************************************************00330200 C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00340200 C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00350200 C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00360200 C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00370200 C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00380200 C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00390200 C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00400200 C THE RESULT OF EXECUTING THESE TESTS. 00410200 C 00420200 C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00430200 C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00440200 C 00450200 C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00460200 C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00470200 C SOFTWARE STANDARDS VALIDATION GROUP 00480200 C BUILDING 225 RM A266 00490200 C GAITHERSBURG, MD 20899 00500200 C ******************************************************************00510200 C 00520200 C 00530200 IMPLICIT LOGICAL (L) 00540200 IMPLICIT CHARACTER*14 (C) 00550200 C 00560200 12 INTEGER XVTN01 00570200 22 DATA IVON02/5/ 00580200 C THE PRECEDING STATEMENTS ARE NONEXECUTABLE STATEMENTS WHICH 00590200 C CONTAIN STATEMENT LABELS. THEY ARE REFERENCED IN TESTS 1 AND 2. 00600200 C 00610200 C 00620200 C 00630200 C INITIALIZATION SECTION. 00640200 C 00650200 C INITIALIZE CONSTANTS 00660200 C ******************** 00670200 C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00680200 I01 = 5 00690200 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00700200 I02 = 6 00710200 C SYSTEM ENVIRONMENT SECTION 00720200 C 00730200 CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD.00740200 C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00750200 C (UNIT NUMBER FOR CARD READER). 00760200 CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00770200 C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00780200 C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00790200 C 00800200 CX020 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD.00810200 C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00820200 C (UNIT NUMBER FOR PRINTER). 00830200 CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00840200 C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00850200 C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00860200 C 00870200 IVPASS = 0 00880200 IVFAIL = 0 00890200 IVDELE = 0 00900200 ICZERO = 0 00910200 C 00920200 C WRITE OUT PAGE HEADERS 00930200 C 00940200 WRITE (I02,90002) 00950200 WRITE (I02,90006) 00960200 WRITE (I02,90008) 00970200 WRITE (I02,90004) 00980200 WRITE (I02,90010) 00990200 WRITE (I02,90004) 01000200 WRITE (I02,90016) 01010200 WRITE (I02,90001) 01020200 WRITE (I02,90004) 01030200 WRITE (I02,90012) 01040200 WRITE (I02,90014) 01050200 WRITE (I02,90004) 01060200 C 01070200 C 01080200 C TEST 1 AND TEST 2 REFERENCE VARIABLES DEFINED IN NONEXECUTABLE 01090200 C STATEMENTS WHICH CONTAIN STATEMENT LABELS. THE NONEXECUTABLE 01100200 C STATEMENTS WHICH APPEAR AT THE BEGINNING OF THE PROGRAM ARE 01110200 C 12 INTEGER XVTN01 01120200 C 22 DATA IVON02/5/ 01130200 C 01140200 C REFERENCE X3.9-1977, SECTION 3.4, STATEMENT LABELS 01150200 C 01160200 C 01170200 C **** FCVS PROGRAM 200 - TEST 001 **** 01180200 C 01190200 C TEST 001 ASSIGNS AN INTEGER VALUE TO XVTN01 WHICH WAS SPECIFIED01200200 C AS TYPE INTEGER IN AN INTEGER STATEMENT CONTAINING A STATEMENT 01210200 C LABEL. 01220200 C 01230200 IVTNUM = 1 01240200 IF (ICZERO) 30010, 0010, 30010 01250200 0010 CONTINUE 01260200 IVCOMP = 0 01270200 XVTN01 = 1 01280200 IVCOMP = XVTN01 01290200 IVCORR = 1 01300200 40010 IF (IVCOMP - 1) 20010, 10010, 20010 01310200 30010 IVDELE = IVDELE + 1 01320200 WRITE (I02,80000) IVTNUM 01330200 IF (ICZERO) 10010, 0021, 20010 01340200 10010 IVPASS = IVPASS + 1 01350200 WRITE (I02,80002) IVTNUM 01360200 GO TO 0021 01370200 20010 IVFAIL = IVFAIL + 1 01380200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01390200 0021 CONTINUE 01400200 C 01410200 C **** FCVS PROGRAM 200 - TEST 002 **** 01420200 C 01430200 C TEST 002 CHECKS THE VALUE WHICH WAS ASSIGNED TO IVON02 BY A 01440200 C DATA STATEMENT WITH A STATEMENT LABEL. 01450200 C 01460200 IVTNUM = 2 01470200 IF (ICZERO) 30020, 0020, 30020 01480200 0020 CONTINUE 01490200 IVCOMP = 0 01500200 IVCOMP = IVON02 01510200 IVCORR = 5 01520200 40020 IF (IVCOMP - 5) 20020, 10020, 20020 01530200 30020 IVDELE = IVDELE + 1 01540200 WRITE (I02,80000) IVTNUM 01550200 IF (ICZERO) 10020, 0031, 20020 01560200 10020 IVPASS = IVPASS + 1 01570200 WRITE (I02,80002) IVTNUM 01580200 GO TO 0031 01590200 20020 IVFAIL = IVFAIL + 1 01600200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01610200 0031 CONTINUE 01620200 C 01630200 C TEST 3 THROUGH TEST 5 USE AN ASTERISK (*) IN COLUMN 1 TO 01640200 C DENOTE A COMMENT LINE. 01650200 C 01660200 C REFERENCE X3.9-1977, SECTION 3.2.1, COMMENT LINE 01670200 C 01680200 C 01690200 C **** FCVS PROGRAM 200 - TEST 003 **** 01700200 C 01710200 C GO TO STATEMENT IN ASTERISK COMMENT LINE. 01720200 C 01730200 IVTNUM = 3 01740200 IF (ICZERO) 30030, 0030, 30030 01750200 0030 CONTINUE 01760200 IVCOMP = 1 01770200 * GO TO 20030 01780200 IVCOMP = 0 01790200 IVCORR = 0 01800200 40030 IF (IVCOMP) 20030, 10030, 20030 01810200 30030 IVDELE = IVDELE + 1 01820200 WRITE (I02,80000) IVTNUM 01830200 IF (ICZERO) 10030, 0041, 20030 01840200 10030 IVPASS = IVPASS + 1 01850200 WRITE (I02,80002) IVTNUM 01860200 GO TO 0041 01870200 20030 IVFAIL = IVFAIL + 1 01880200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01890200 0041 CONTINUE 01900200 C 01910200 C **** FCVS PROGRAM 200 - TEST 004 **** 01920200 C 01930200 C SEVERAL * COMMENT LINES INTERMIXED WITH EXECUTABLE STATEMENTS. 01940200 C 01950200 IVTNUM = 4 01960200 IF (ICZERO) 30040, 0040, 30040 01970200 0040 CONTINUE 01980200 IVCOMP = 0 01990200 * THE * COMMENT LINE IS THE SAME AS A C COMMENT LINE. 02000200 IVCOMP = 1 02010200 * THE * COMMENT LINES HAVE NO EFFECT ON THE PROGRAM EXECUTION. 02020200 * THEIR USE IS STRICTLY FOR DOCUMENTATION PURPOSES. 02030200 IVCOMP = 2 02040200 * IVCOMP = 3 02050200 * 40 ANY STATEMENT LABELS ON COMMENT LINES ARE IGNORED. 02060200 IVCORR = 2 02070200 40040 IF (IVCOMP - 2) 20040, 10040, 20040 02080200 30040 IVDELE = IVDELE + 1 02090200 WRITE (I02,80000) IVTNUM 02100200 IF (ICZERO) 10040, 0051, 20040 02110200 10040 IVPASS = IVPASS + 1 02120200 WRITE (I02,80002) IVTNUM 02130200 GO TO 0051 02140200 20040 IVFAIL = IVFAIL + 1 02150200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02160200 0051 CONTINUE 02170200 C 02180200 C **** FCVS PROGRAM 200 - TEST 005 **** 02190200 C 02200200 C NONFORTRAN CHARACTERS WITHIN C AND * COMMENT LINES. 02210200 C 02220200 IVTNUM = 5 02230200 IF (ICZERO) 30050, 0050, 30050 02240200 0050 CONTINUE 02250200 IVCOMP = 1 02260200 * <>%? NONFORTRAN CHARACTER 02270200 C <>%? NONFORTRAN CHARACTER 02280200 IVCOMP = 0 02290200 IVCORR = 0 02300200 40050 IF (IVCOMP) 20050, 10050, 20050 02310200 30050 IVDELE = IVDELE + 1 02320200 WRITE (I02,80000) IVTNUM 02330200 IF (ICZERO) 10050, 0061, 20050 02340200 10050 IVPASS = IVPASS + 1 02350200 WRITE (I02,80002) IVTNUM 02360200 GO TO 0061 02370200 20050 IVFAIL = IVFAIL + 1 02380200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02390200 0061 CONTINUE 02400200 C 02410200 C **** FCVS PROGRAM 200 - TEST 006 **** 02420200 C 02430200 C LINES CONTAINING ONLY BLANK CHARACTERS IN COLUMNS 1 THROUGH 02440200 C 72 ARE COMMENT LINES. 02450200 C 02460200 C REFERENCE X3.9-1977, SECTION 3.2.1, COMMENT LINE 02470200 C 02480200 IVTNUM = 6 02490200 IF (ICZERO) 30060, 0060, 30060 02500200 0060 CONTINUE 02510200 IVCOMP = 0 02520200 02530200 IVCORR = 3 02540200 IVCOMP = 9 02550200 * ASTERISK COMMENT LINE FOLLOWED BY BLANK COMMENT LINE. 02560200 02570200 * ASTERISK COMMENT LINE. 02580200 IVCOMP = 3 02590200 40060 IF (IVCOMP - 3) 20060, 10060, 20060 02600200 30060 IVDELE = IVDELE + 1 02610200 WRITE (I02,80000) IVTNUM 02620200 IF (ICZERO) 10060, 0071, 20060 02630200 10060 IVPASS = IVPASS + 1 02640200 WRITE (I02,80002) IVTNUM 02650200 GO TO 0071 02660200 20060 IVFAIL = IVFAIL + 1 02670200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02680200 0071 CONTINUE 02690200 C 02700200 C TEST 7 AND TEST 8 CONTAIN THE DIGIT 0 IN COLUMN 6 OF INITIAL 02710200 C LINES. 02720200 C 02730200 C REFERENCE X3.9-1977, SECTION 3.2.2, INITIAL LINE 02740200 C 02750200 C 02760200 C **** FCVS PROGRAM 200 - TEST 007 **** 02770200 C 02780200 C TEST 007 USES THE DIGIT 0 IN COLUMN 6 OF TWO SUCCESSIVE 02790200 C INITIAL LINES. 02800200 C 02810200 IVTNUM = 7 02820200 IF (ICZERO) 30070, 0070, 30070 02830200 0070 CONTINUE 02840200 IVCOMP = 0 02850200 0IVON01 = 5 02860200 0IVON02 = 6 02870200 IVCOMP = IVON01 + IVON02 02880200 IVCORR = 11 02890200 40070 IF (IVCOMP - 11) 20070, 10070, 20070 02900200 30070 IVDELE = IVDELE + 1 02910200 WRITE (I02,80000) IVTNUM 02920200 IF (ICZERO) 10070, 0081, 20070 02930200 10070 IVPASS = IVPASS + 1 02940200 WRITE (I02,80002) IVTNUM 02950200 GO TO 0081 02960200 20070 IVFAIL = IVFAIL + 1 02970200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02980200 0081 CONTINUE 02990200 C 03000200 C **** FCVS PROGRAM 200 - TEST 008 **** 03010200 C 03020200 C TEST 008 MIXES STATEMENTS WITH DIGIT 0 IN COLUMN 6 OF INITIAL 03030200 C LINE AND COMMENT LINES WITH * IN COLUMN 1. 03040200 C 03050200 IVTNUM = 8 03060200 IF (ICZERO) 30080, 0080, 30080 03070200 0080 CONTINUE 03080200 IVCOMP = 0 03090200 * FIRST INITIAL LINE FOLLOWS. 03100200 0IVON01 = 5 03110200 * TWO SUCCESSIVE COMMENT LINES, 03120200 * FOLLOWED BY TWO INITIAL LINES. 03130200 0IVON02=4 03140200 0IVCOMP=IVON01+IVON02 03150200 * FALL THROUGH TO VERIFICATION CODE 03160200 IVCORR = 9 03170200 40080 IF (IVCOMP - 9) 20080, 10080, 20080 03180200 30080 IVDELE = IVDELE + 1 03190200 WRITE (I02,80000) IVTNUM 03200200 IF (ICZERO) 10080, 0091, 20080 03210200 10080 IVPASS = IVPASS + 1 03220200 WRITE (I02,80002) IVTNUM 03230200 GO TO 0091 03240200 20080 IVFAIL = IVFAIL + 1 03250200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03260200 0091 CONTINUE 03270200 C 03280200 C TEST 9 THROUGH TEST 13 VERIFY THAT CONTINUATION LINES ARE 03290200 C PERMITTED. 03300200 C 03310200 C REFERENCE X3.9-1977, SECTION 3.2.3, CONTINUATION LINE 03320200 C 03330200 C 03340200 C **** FCVS PROGRAM 200 - TEST 009 **** 03350200 C 03360200 C STATEMENT WITH TWO CONTINUATION LINES. 03370200 C 03380200 IVTNUM = 9 03390200 IF (ICZERO) 30090, 0090, 30090 03400200 0090 CONTINUE 03410200 IVON01 = 0 03420200 IVON 03430200 1 01 03440200 2 = 2 03450200 IVCOMP = IVON01 03460200 IVCORR = 2 03470200 40090 IF (IVCOMP - 2) 20090, 10090, 20090 03480200 30090 IVDELE = IVDELE + 1 03490200 WRITE (I02,80000) IVTNUM 03500200 IF (ICZERO) 10090, 0101, 20090 03510200 10090 IVPASS = IVPASS + 1 03520200 WRITE (I02,80002) IVTNUM 03530200 GO TO 0101 03540200 20090 IVFAIL = IVFAIL + 1 03550200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03560200 0101 CONTINUE 03570200 C 03580200 C **** FCVS PROGRAM 200 - TEST 010 **** 03590200 C 03600200 C STATEMENT WITH NINE CONTINUATION LINES. 03610200 C 03620200 IVTNUM = 10 03630200 IF (ICZERO) 30100, 0100, 30100 03640200 0100 CONTINUE 03650200 IVON01 = 0 03660200 IVON01 = 03670200 1 1 03680200 2 +1 03690200 3 +1 03700200 4 +1 03710200 5 +1 03720200 6 +1 03730200 7 +1 03740200 8 +1 03750200 9+1 03760200 IVCOMP = IVON01 03770200 IVCORR = 9 03780200 40100 IF (IVCOMP - 9) 20100, 10100, 20100 03790200 30100 IVDELE = IVDELE + 1 03800200 WRITE (I02,80000) IVTNUM 03810200 IF (ICZERO) 10100, 0111, 20100 03820200 10100 IVPASS = IVPASS + 1 03830200 WRITE (I02,80002) IVTNUM 03840200 GO TO 0111 03850200 20100 IVFAIL = IVFAIL + 1 03860200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03870200 0111 CONTINUE 03880200 C 03890200 C **** FCVS PROGRAM 200 - TEST 011 **** 03900200 C 03910200 C TEST 011 CONTAINS THE MAXIMUM NUMBER OF CONTINUATION LINES 03920200 C PERMITTED IN THE SUBSET LANGUAGE AND EACH OF THE 660 CHARACTERS 03930200 C IN THE STATEMENT ARE NONBLANK. 03940200 C 03950200 IVTNUM = 11 03960200 IF (ICZERO) 30110, 0110, 30110 03970200 0110 CONTINUE 03980200 IVON01 = 1 03990200 IVCOMP = 0 04000200 IVCOMP=IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVO04010200 1N01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON0104020200 2+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IV04030200 3ON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON004040200 41+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+I04050200 5VON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON04060200 601+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+04070200 7IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVO04080200 8N01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON0104090200 9+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+IVON01+1204100200 IVCORR = 105 04110200 40110 IF (IVCOMP - 105) 20110, 10110, 20110 04120200 30110 IVDELE = IVDELE + 1 04130200 WRITE (I02,80000) IVTNUM 04140200 IF (ICZERO) 10110, 0121, 20110 04150200 10110 IVPASS = IVPASS + 1 04160200 WRITE (I02,80002) IVTNUM 04170200 GO TO 0121 04180200 20110 IVFAIL = IVFAIL + 1 04190200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04200200 0121 CONTINUE 04210200 C 04220200 C **** FCVS PROGRAM 200 - TEST 012 **** 04230200 C 04240200 C TEST 012 SPLITS A STATEMENT ACROSS 8 CONTINUATION LINES. 04250200 C THERE IS A STATEMENT LABEL IN COLUMNS 1-5 AND 0 IN COLUMN 6 04260200 C OF THE INITIAL LINE. 04270200 C 04280200 IVTNUM = 12 04290200 IF (ICZERO) 30120, 0120, 30120 04300200 0120 CONTINUE 04310200 IVON01 = 0 04320200 GO TO 0122 04330200 01220 I 04340200 1 V 04350200 2 O 04360200 3 N 04370200 4 0 04380200 5 1 04390200 6 = 04400200 7 8 04410200 8 9 04420200 IVCOMP = IVON01 04430200 IVCORR = 89 04440200 40120 IF (IVCOMP - 89) 20120, 10120, 20120 04450200 30120 IVDELE = IVDELE + 1 04460200 WRITE (I02,80000) IVTNUM 04470200 IF (ICZERO) 10120, 0131, 20120 04480200 10120 IVPASS = IVPASS + 1 04490200 WRITE (I02,80002) IVTNUM 04500200 GO TO 0131 04510200 20120 IVFAIL = IVFAIL + 1 04520200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04530200 0131 CONTINUE 04540200 C 04550200 C **** FCVS PROGRAM 200 - TEST 013 **** 04560200 C 04570200 C TEST 013 CONSISTS OF AN INITIAL LINE WHICH CONTAINS ONLY A 04580200 C STATEMENT LABEL AND A CONTINUATION LINE WHICH CONTAINS THE 04590200 C EXECUTABLE STATEMENT. 04600200 C 04610200 IVTNUM = 13 04620200 IF (ICZERO) 30130, 0130, 30130 04630200 0130 CONTINUE 04640200 IVCOMP = 0 04650200 0132 04660200 1IVCOMP = 4 04670200 IVCORR = 4 04680200 40130 IF (IVCOMP - 4) 20130, 10130, 20130 04690200 30130 IVDELE = IVDELE + 1 04700200 WRITE (I02,80000) IVTNUM 04710200 IF (ICZERO) 10130, 0141, 20130 04720200 10130 IVPASS = IVPASS + 1 04730200 WRITE (I02,80002) IVTNUM 04740200 GO TO 0141 04750200 20130 IVFAIL = IVFAIL + 1 04760200 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04770200 0141 CONTINUE 04780200 C 04790200 C 04800200 C WRITE OUT TEST SUMMARY 04810200 C 04820200 WRITE (I02,90004) 04830200 WRITE (I02,90014) 04840200 WRITE (I02,90004) 04850200 WRITE (I02,90000) 04860200 WRITE (I02,90004) 04870200 WRITE (I02,90020) IVFAIL 04880200 WRITE (I02,90022) IVPASS 04890200 WRITE (I02,90024) IVDELE 04900200 STOP 04910200 90001 FORMAT (" ",24X,"FM200") 04920200 90000 FORMAT (" ",20X,"END OF PROGRAM FM200" ) 04930200 C 04940200 C FORMATS FOR TEST DETAIL LINES 04950200 C 04960200 80000 FORMAT (" ",4X,I5,6X,"DELETED") 04970200 80002 FORMAT (" ",4X,I5,7X,"PASS") 04980200 80010 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 04990200 80012 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 05000200 80018 FORMAT (" ",4X,I5,7X,"FAIL",2X,A14,1X,A14) 05010200 C 05020200 C FORMAT STATEMENTS FOR PAGE HEADERS 05030200 C 05040200 90002 FORMAT ("1") 05050200 90004 FORMAT (" ") 05060200 90006 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 05070200 90008 FORMAT (" ",21X,"VERSION 2.1" ) 05080200 90010 FORMAT (" ",8X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 05090200 90012 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL",5X,"COMPUTED",8X,"CORRECT") 05100200 90014 FORMAT (" ",5X,"----------------------------------------------" ) 05110200 90016 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 05120200 C 05130200 C FORMAT STATEMENTS FOR RUN SUMMARY 05140200 C 05150200 90020 FORMAT (" ",19X,I5," TESTS FAILED" ) 05160200 90022 FORMAT (" ",19X,I5," TESTS PASSED" ) 05170200 90024 FORMAT (" ",19X,I5," TESTS DELETED" ) 05180200 END 05190200