C COMMENT SECTION C C FM001 C C THIS ROUTINE CONTAINS THE BOILERPLATE SOURCE CODING WHICH C IS USED TO PRINT THE REPORT HEADINGS AND RUN SUMMARIES FOR EACH C OF THE ELEMENTARY ROUTINES. C C THREE TESTS ARE INCLUDED WHICH CONTAIN THE PROCEDURES FOR C TESTING THE LANGUAGE FEATURES AND DELETING TESTS. C C TEST 1 CHECKS THE PASS PROCEDURE C TEST 2 CHECKS THE FAIL PROCEDURE C TEST 3 CHECKS THE DELETE PROCEDURE C C IF THIS ROUTINE DOES NOT EXECUTE CORRECTLY, THEN NO OTHER C ROUTINES WILL BE RUN. THERE IS NO USE IN TRYING TO VALIDATE A C FORTRAN COMPILER WHICH CANNOT HANDLE SUCH BASIC STATEMENTS. C C ********************************************************** C C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT C OF EXECUTING THESE TESTS. C C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. C C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - C C DEPARTMENT OF THE NAVY C FEDERAL COBOL COMPILER TESTING SERVICE C WASHINGTON, D.C. 20376 C C ********************************************************** C C C C INITIALIZATION SECTION C C INITIALIZE CONSTANTS C ************** C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. I01 = 5 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. I02 = 6 C SYSTEM ENVIRONMENT SECTION C CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 C (UNIT NUMBER FOR CARD READER). CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. C CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 C (UNIT NUMBER FOR PRINTER). CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. C IVPASS=0 IVFAIL=0 IVDELE=0 ICZERO=0 C C WRITE PAGE HEADERS WRITE (I02,90000) WRITE (I02,90001) WRITE (I02,90002) WRITE (I02, 90002) WRITE (I02,90003) WRITE (I02,90002) WRITE (I02,90004) WRITE (I02,90002) WRITE (I02,90011) WRITE (I02,90002) WRITE (I02,90002) WRITE (I02,90005) WRITE (I02,90006) WRITE (I02,90002) C TEST SECTION C 11 CONTINUE C C **** TEST 001 **** C TEST 001 - BASIC PROCEDURE FOR CODING TESTS C ALSO CHECKS CONTINUE STATEMENT WHICH SHOULD NOT HAVE C ANY AFFECT ON EXECUTION SEQUENCE C IF (ICZERO) 30010, 10, 30010 10 CONTINUE IVTNUM=1 GO TO 40010 30010 IVDELE=IVDELE+1 WRITE (I02,80003) IVTNUM IF (ICZERO) 40010, 21, 40010 40010 IF (IVTNUM - 1) 20010, 10010, 20010 10010 IVPASS=IVPASS+1 WRITE (I02,80001) IVTNUM GO TO 21 20010 IVFAIL=IVFAIL+1 IVCOMP=IVTNUM IVCORR=1 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 21 CONTINUE C C **** TEST 002 **** C TEST - 002 FORCE FAIL CODE TO BE EXECUTED C IF (ICZERO) 30020,20,30020 20 CONTINUE IVTNUM=2 GO TO 40020 30020 IVDELE=IVDELE+1 WRITE (I02,80003) IVTNUM IF (ICZERO) 40020,31,40020 40020 IF (IVTNUM-1) 20020, 10020, 20020 10020 IVPASS=IVPASS+1 WRITE (I02,80001) IVTNUM GO TO 31 20020 IVFAIL=IVFAIL+1 IVCOMP=IVTNUM IVCORR=2 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 31 CONTINUE C C **** TEST 003 **** C TEST 003 - DELETE PROCEDURE TESTED C IF (ICZERO) 30030,30,30030 30 CONTINUE C IVTNUM=5000 C GO TO 40030 30030 IVDELE=IVDELE+1 IVTNUM=3 WRITE (I02,80003) IVTNUM IF (ICZERO) 40030,99999,40030 40030 IF (IVTNUM - 5000) 20030,10030,20030 10030 IVPASS=IVPASS +1 WRITE (I02,80001) IVTNUM GO TO 99999 20030 IVFAIL=IVFAIL+1 IVCOMP=IVTNUM IVCORR=5000 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR C C WRITE PAGE FOOTINGS AND RUN SUMMARIES 99999 CONTINUE WRITE (I02,90002) WRITE (I02,90006) WRITE (I02,90002) WRITE (I02,90002) WRITE (I02,90007) WRITE (I02,90002) WRITE (I02,90008) IVFAIL WRITE (I02,90009) IVPASS WRITE (I02,90010) IVDELE C C C SPECIAL OUTPUT STATEMENTS FOR THIS ROUTINE WRITE (I02,90000) WRITE (I02,90002) WRITE (I02,80031) WRITE (I02,90002) WRITE (I02,80010) WRITE (I02,80020) WRITE (I02,80030) WRITE (I02,80032) C C TERMINATE ROUTINE EXECUTION STOP C C FORMAT STATEMENTS FOR PAGE HEADERS 90000 FORMAT (1H1) 90002 FORMAT (1H ) 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 90003 FORMAT (1H ,21X,11HVERSION 1.0) 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 90006 FORMAT (1H ,5X,46H----------------------------------------------) 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) C C FORMAT STATEMENTS FOR RUN SUMMARIES 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) C C FORMAT STATEMENTS FOR TEST RESULTS 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) C C FORMATS FOR CURRENT ROUTINE 80031 FORMAT (1H ,10X,39HTHE PROGRAM FM001 EXECUTED CORRECTLY IF) 80010 FORMAT (1H ,15X,13HTEST 1 PASSED) 80020 FORMAT (1H ,15X,42HTEST 2 FAILED WITH COMPUTED AND CORRECT =2) 80030 FORMAT (1H ,15X,18HTEST 3 WAS DELETED) 80032 FORMAT (1H ,15X,34HTHE RUN SUMMARY TOTALS ALL EQUAL 1) 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM001) END