PROGRAM FM205 C C C THE ROUTINE FM205 TESTS CHARACTER CONSTANTS, CHARACTER C VARIABLES, AND CHARACTER ARRAY ELEMENTS WITH A MAXIMUM LENGTH C OF 57 CHARACTERS. CHARACTER ASSIGNMENT STATEMENTS AND CHARACTER C RELATIONAL EXPRESSIONS OF THE FOLLOWING STATEMENT FORMS ARE C TESTED IN THIS ROUTINE. C C (1) CHARACTER ASSIGNMENT STATEMENTS C C CHARACTER VARIABLE = CHARACTER CONSTANT, C CHARACTER VARIABLE = CHARACTER VARIABLE, C CHARACTER ARRAY ELEMENT = CHARACTER CONSTANT, C CHARACTER ARRAY ELEMENT = CHARACTER VARIABLE, C CHARACTER ARRAY ELEMENT = CHARACTER ARRAY ELEMENT, C CHARACTER VARIABLE = CHARACTER ARRAY ELEMENT. C C THE CHARACTER ENTITIES IN AN ASSIGNMENT STATEMENT ARE THE C SAME LENGTH. C C (2) CHARACTER RELATIONAL EXPRESSIONS C C CHARACTER VARIABLE RELOP CHARACTER CONSTANT, C CHARACTER VARIABLE RELOP CHARACTER VARIABLE, C CHARACTER ARRAY ELEMENT RELOP CHARACTER CONSTANT, C CHARACTER ARRAY ELEMENT RELOP CHARACTER VARIABLE, C CHARACTER ARRAY ELEMENT RELOP CHAR. ARRAY ELEMENT. C C THE CHARACTER ENTITIES IN A RELATIONAL EXPRESSION ARE THE C SAME LENGTH. C C REFERENCES C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, C X3.9-1978. C C SECTION 4.8, CHARACTER TYPE C SECTION 4.8.1, CHARACTER CONSTANT C SECTION 6.2, CHARACTER EXPRESSIONS C SECTION 6.3.4, CHARACTER RELATIONAL EXPRESSION C SECTION 6.3.5, INTERPRETATION OF CHARACTER RELATIONAL C EXPRESSIONS C SECTION 8.4,2, CHARACTER TYPE-STATEMENT C SECTION 10.4, CHARACTER ASSIGNMENT STATEMENT C C C ****************************************************************** C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING C THE RESULT OF EXECUTING THESE TESTS. C C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES C FOUND IN THE SUBSET LEVEL OF THE STANDARD. C C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO C DEPARTMENT OF THE NAVY C FEDERAL COBOL COMPILER TESTING SERVICE C WASHINGTON, D.C. 20376 C C ****************************************************************** C C IMPLICIT LOGICAL (L) IMPLICIT CHARACTER*14 (C) C CHARACTER CVTN01*3,CVTN02*7,CVTN03*12 CHARACTER CVTN04*25,CVTN05*41,CVTN06*57 CHARACTER CVTN07*3,CVTN08*7,CVTN09*12 CHARACTER CVTN10*25,CVTN11*41,CVTN12*57 CHARACTER CATN11(6)*3,CATN12(7)*7,CATN13(3)*12 CHARACTER CATN14(2)*25,CATN15(10)*41,CATN16(4)*57 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 PEPLACED 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 PEPLACED 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 OUT PAGE HEADERS C WRITE (I02,90002) WRITE (I02,90006) WRITE (I02,90008) WRITE (I02,90004) WRITE (I02,90010) WRITE (I02,90004) WRITE (I02,90016) WRITE (I02,90001) WRITE (I02,90004) WRITE (I02,90012) WRITE (I02,90014) WRITE (I02,90004) C C C TEST 87 THROUGH TEST 92 VERIFY THE CHARACTER ASSIGNMENT C STATEMENT C C CHARACTER VARIABLE = CHARACTER CONSTANT C C IS CORRECT. THE VARIABLE AND CONSTANT ARE THE SAME LENGTH, AND C THE LENGTHS 3, 7, 12, 25, 41, AND 57 ARE USED IN THESE TESTS. C C C **** FCVS PROGRAM 205 - TEST 087 **** C C IVTNUM = 87 IF (ICZERO) 30870, 0870, 30870 0870 CONTINUE IVCOMP = 0 CVTN01 = 'ABC' IF (CVTN01 .EQ. 'ABC') IVCOMP = 1 IVCORR = 1 40870 IF (IVCOMP - 1) 20870, 10870, 20870 30870 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10870, 0881, 20870 10870 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 0881 20870 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 0881 CONTINUE C C **** FCVS PROGRAM 205 - TEST 088 **** C C IVTNUM = 88 IF (ICZERO) 30880, 0880, 30880 0880 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN02 = 'ABCDEFG' IF (CVTN02 .EQ. 'ABCDEFG') IVCOMP = 1 40880 IF (IVCOMP - 1) 20880, 10880, 20880 30880 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10880, 0891, 20880 10880 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 0891 20880 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 0891 CONTINUE C C **** FCVS PROGRAM 205 - TEST 089 **** C C IVTNUM = 89 IF (ICZERO) 30890, 0890, 30890 0890 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN03 = 'ABCDEFGHIJKL' IF (CVTN03 .EQ. 'ABCDEFGHIJKL') IVCOMP = 1 40890 IF (IVCOMP - 1) 20890, 10890, 20890 30890 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10890, 0901, 20890 10890 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 0901 20890 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 0901 CONTINUE C C **** FCVS PROGRAM 205 - TEST 090 **** C C IVTNUM = 90 IF (ICZERO) 30900, 0900, 30900 0900 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN04 = 'ABCDEFGHIJKLMNOPQRSTUVWXY' IF (CVTN04 .EQ. 'ABCDEFGHIJKLMNOPQRSTUVWXY') IVCOMP = 1 40900 IF (IVCOMP - 1) 20900, 10900, 20900 30900 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10900, 0911, 20900 10900 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 0911 20900 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 0911 CONTINUE C C **** FCVS PROGRAM 205 - TEST 091 **** C C IVTNUM = 91 IF (ICZERO) 30910, 0910, 30910 0910 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN05 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO' IF (CVTN05 .EQ. 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO') 1 IVCOMP = 1 40910 IF (IVCOMP - 1) 20910, 10910, 20910 30910 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10910, 0921, 20910 10910 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 0921 20910 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 0921 CONTINUE C C **** FCVS PROGRAM 205 - TEST 092 **** C C IVTNUM = 92 IF (ICZERO) 30920, 0920, 30920 0920 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN06 = 1 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDE' IF (CVTN06 .EQ. 1 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDE') 2 IVCOMP = 1 40920 IF (IVCOMP - 1) 20920, 10920, 20920 30920 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10920, 0931, 20920 10920 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 0931 20920 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 0931 CONTINUE C C TEST 93 THROUGH TEST 96 VERIFY THE CHARACTER ASSIGNMENT C STATEMENTS C C CHARACTER VARIABLE = CHARACTER CONSTANT C CHARACTER VARIABLE = CHARACTER VARIABLE C C ARE CORRECT. THE VARIABLES AND CONSTANT ARE THE SAME LENGTH, C AND THE LENGTHS 3, 12, 25, AND 57 ARE USED IN THESE TESTS. C C C **** FCVS PROGRAM 205 - TEST 093 **** C C IVTNUM = 93 IF (ICZERO) 30930, 0930, 30930 0930 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN07 = ' ' CVTN01 = 'ABC' CVTN07 = CVTN01 IF (CVTN07 .EQ. 'ABC') IVCOMP = 1 40930 IF (IVCOMP - 1) 20930, 10930, 20930 30930 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10930, 0941, 20930 10930 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 0941 20930 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 0941 CONTINUE C C **** FCVS PROGRAM 205 - TEST 094 **** C C IVTNUM = 94 IF (ICZERO) 30940, 0940, 30940 0940 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN03 = 'ABCDEFGHIJKL' CVTN09 = ' ' CVTN09 = CVTN03 IF (CVTN09 .EQ. 'ABCDEFGHIJKL') IVCOMP = 1 40940 IF (IVCOMP - 1) 20940, 10940, 20940 30940 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10940, 0951, 20940 10940 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 0951 20940 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 0951 CONTINUE C C **** FCVS PROGRAM 205 - TEST 095 **** C C IVTNUM = 95 IF (ICZERO) 30950, 0950, 30950 0950 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN04 = 'ABCDEFGHIJKLMNOPQRSTUVWXY' CVTN10 = ' ' CVTN10 = CVTN04 IF (CVTN10 .EQ. 'ABCDEFGHIJKLMNOPQRSTUVWXY') IVCOMP = 1 40950 IF (IVCOMP - 1) 20950, 10950, 20950 30950 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10950, 0961, 20950 10950 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 0961 20950 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 0961 CONTINUE C C **** FCVS PROGRAM 205 - TEST 096 **** C C IVTNUM = 96 IF (ICZERO) 30960, 0960, 30960 0960 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN12 = ' ' CVTN06 = 1 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDE' CVTN12 = CVTN06 IF (CVTN12 .EQ. 1 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDE') 2 IVCOMP = 1 40960 IF (IVCOMP - 1) 20960, 10960, 20960 30960 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10960, 0971, 20960 10960 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 0971 20960 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 0971 CONTINUE C C TEST 97 AND TEST 98 VERIFY THE CHARACTER ASSIGNMENT C STATEMENT C C CHARACTER ARRAY ELEMENT = CHARACTER CONSTANT C C IS CORRECT. THE ARRAY ELEMENT AND CONSTANT ARE THE SAME LENGTH, C AND THE LENGTHS 25 AND 41 ARE USED IN THESE TESTS. C C C **** FCVS PROGRAM 205 - TEST 097 **** C C IVTNUM = 97 IF (ICZERO) 30970, 0970, 30970 0970 CONTINUE IVCOMP = 0 IVCORR = 1 CATN14(1) = 'ABCDEFGHIJKLMNOPQRSTUVWXY' IF (CATN14(1) .EQ. 'ABCDEFGHIJKLMNOPQRSTUVWXY') IVCOMP = 1 40970 IF (IVCOMP - 1) 20970, 10970, 20970 30970 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10970, 0981, 20970 10970 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 0981 20970 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 0981 CONTINUE C C **** FCVS PROGRAM 205 - TEST 098 **** C C IVTNUM = 98 IF (ICZERO) 30980, 0980, 30980 0980 CONTINUE IVCOMP = 0 IVCORR = 1 CATN15(8) = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO' IF (CATN15(8) .EQ. 1 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO') IVCOMP = 1 40980 IF (IVCOMP - 1) 20980, 10980, 20980 30980 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10980, 0991, 20980 10980 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 0991 20980 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 0991 CONTINUE C C TEST 99 AND TEST 100 VERIFY THE CHARACTER ASSIGNMENT C STATEMENTS C C CHARACTER VARIABLE = CHARACTER CONSTANT C CHARACTER ARRAY ELEMENT = CHARACTER VARIABLE C C ARE CORRECT. THE CHARACTER ENTITIES ARE THE SAME LENGTH, C AND THE LENGTHS 3 AND 57 ARE USED IN THESE TESTS. C C C **** FCVS PROGRAM 205 - TEST 099 **** C C IVTNUM = 99 IF (ICZERO) 30990, 0990, 30990 0990 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN01 = 'ABC' CATN11(5) = CVTN01 IF (CATN11(5) .EQ. 'ABC') IVCOMP = 1 40990 IF (IVCOMP - 1) 20990, 10990, 20990 30990 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 10990, 1001, 20990 10990 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1001 20990 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1001 CONTINUE C C **** FCVS PROGRAM 205 - TEST 100 **** C C IVTNUM = 100 IF (ICZERO) 31000, 1000, 31000 1000 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN06 = 1 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDE' CATN16(3) = CVTN06 IF (CATN16(3) .EQ. 1 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDE') 2 IVCOMP = 1 41000 IF (IVCOMP - 1) 21000, 11000, 21000 31000 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11000, 1011, 21000 11000 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1011 21000 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1011 CONTINUE C C TEST 101 AND TEST 102 VERIFY THE CHARACTER ASSIGNMENT C STATEMENTS C C CHARACTER ARRAY ELEMENT = CHARACTER CONSTANT C CHARACTER ARRAY ELEMENT = CHARACTER ARRAY ELEMENT C C ARE CORRECT. THE CHARACTER ENTITIES ARE THE SAME LENGTH, AND C THE LENGTHS 7 AND 41 ARE USED IN THESE TESTS. C C C **** FCVS PROGRAM 205 - TEST 101 **** C C IVTNUM = 101 IF (ICZERO) 31010, 1010, 31010 1010 CONTINUE IVCOMP = 0 IVCORR = 1 CATN12(3) = 'ABCDEFG' CATN12(4) = CATN12(3) IF (CATN12(4) .EQ. 'ABCDEFG') IVCOMP = 1 41010 IF (IVCOMP - 1) 21010, 11010, 21010 31010 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11010, 1021, 21010 11010 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1021 21010 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1021 CONTINUE C C **** FCVS PROGRAM 205 - TEST 102 **** C C IVTNUM = 102 IF (ICZERO) 31020, 1020, 31020 1020 CONTINUE IVCOMP = 0 IVCORR = 1 CATN15(3) = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO' CATN15(4) = CATN15(3) IF (CATN15(4) .EQ. 1 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO') IVCOMP = 1 41020 IF (IVCOMP - 1) 21020, 11020, 21020 31020 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11020, 1031, 21020 11020 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1031 21020 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1031 CONTINUE C C TEST 103 AND TEST 104 VERIFY THE CHARACTER ASSIGNMENT C STATEMENTS C C CHARACTER ARRAY ELEMENT = CHARACTER CONSTANT C CHARACTER VARIABLE = CHARACTER ARRAY ELEMENT C C ARE CORRECT. THE CHARACTER ENTITIES ARE THE SAME LENGTH, AND C THE LENGTHS 12 AND 25 ARE USED. C C C **** FCVS PROGRAM 205 - TEST 103 **** C C IVTNUM = 103 IF (ICZERO) 31030, 1030, 31030 1030 CONTINUE IVCOMP = 0 IVCORR = 1 CATN13(1) = 'ABCDEFGHIJKL' CVTN09 = ' ' CVTN09 = CATN13(1) IF (CVTN09 .EQ. 'ABCDEFGHIJKL') IVCOMP = 1 41030 IF (IVCOMP - 1) 21030, 11030, 21030 31030 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11030, 1041, 21030 11030 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1041 21030 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1041 CONTINUE C C **** FCVS PROGRAM 205 - TEST 104 **** C C IVTNUM = 104 IF (ICZERO) 31040, 1040, 31040 1040 CONTINUE IVCOMP = 0 IVCORR = 1 CATN14(1) = 'ABCDEFGHIJKLMNOPQRSTUVWXY' CVTN10 = ' ' CVTN10 = CATN14(1) IF (CVTN10 .EQ. 'ABCDEFGHIJKLMNOPQRSTUVWXY') IVCOMP = 1 41040 IF (IVCOMP - 1) 21040, 11040, 21040 31040 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11040, 1051, 21040 11040 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1051 21040 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1051 CONTINUE C C TEST 105 THROUGH TEST 110 VERIFY THE CHARACTER RELATIONAL C EXPRESSION USING EACH OF THE SIX RELATIONAL OPERATORS IN THE C STATEMENT FORM C C CHARACTER VARIABLE RELOP CHARACTER CONSTANT C C THE CHARACTER ENTITIES ARE THE SAME LENGTH, AND THE LENGTHS C 3, 7, 12, 25, 41, AND 57 ARE USED IN THESE TESTS. C C C **** FCVS PROGRAM 205 - TEST 105 **** C C IVTNUM = 105 IF (ICZERO) 31050, 1050, 31050 1050 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN07 = 'ZAB' IF (CVTN07 .EQ. 'ZAB') IVCOMP = 1 41050 IF (IVCOMP - 1) 21050, 11050, 21050 31050 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11050, 1061, 21050 11050 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1061 21050 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1061 CONTINUE C C **** FCVS PROGRAM 205 - TEST 106 **** C C IVTNUM = 106 IF (ICZERO) 31060, 1060, 31060 1060 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN08 = 'ABDDEEF' IF (CVTN08 .GT. 'ABCDEEF') IVCOMP = 1 41060 IF (IVCOMP - 1) 21060, 11060, 21060 31060 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11060, 1071, 21060 11060 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1071 21060 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1071 CONTINUE C C **** FCVS PROGRAM 205 - TEST 107 **** C C IVTNUM = 107 IF (ICZERO) 31070, 1070, 31070 1070 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN09 = 'ZXYZZZABCDEF' IF (CVTN09 .LT. 'ZXYZZZACCDEF') IVCOMP = 1 41070 IF (IVCOMP - 1) 21070, 11070, 21070 31070 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11070, 1081, 21070 11070 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1081 21070 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1081 CONTINUE C C **** FCVS PROGRAM 205 - TEST 108 **** C C IVTNUM = 108 IF (ICZERO) 31080, 1080, 31080 1080 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN10 = 'ABCDEFGHIJKKMNOPQRSTUVWXY' IF ('ABCDEFGHIJKLMNOPQRSTUVWXY' .NE. CVTN10) IVCOMP = 1 41080 IF (IVCOMP - 1) 21080, 11080, 21080 31080 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11080, 1091, 21080 11080 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1091 21080 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1091 CONTINUE C C **** FCVS PROGRAM 205 - TEST 109 **** C C IVTNUM = 109 IF (ICZERO) 31090, 1090, 31090 1090 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN11 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZAABCDEFGHIJKLMN' IF ('ABCDEFGHIJKLMNOPQRSTUVWXYZABBCDEFGHIJKLMN' .GE. CVTN11) 1 IVCOMP = 1 41090 IF (IVCOMP - 1) 21090, 11090, 21090 31090 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11090, 1101, 21090 11090 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1101 21090 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1101 CONTINUE C C **** FCVS PROGRAM 205 - TEST 110 **** C C IVTNUM = 110 IF (ICZERO) 31100, 1100, 31100 1100 CONTINUE IVCOMP = 0 IVCORR = 1 CVTN12 = 1 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAAAAA' IF ('ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYAAAAAA' 1 .LE. CVTN12) IVCOMP = 1 41100 IF (IVCOMP - 1) 21100, 11100, 21100 31100 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11100, 1111, 21100 11100 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1111 21100 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1111 CONTINUE C C TEST 111 AND TEST 112 VERIFY THE CHARACTER RELATIONAL C EXPRESSION OF THE FORM C C CHARACTER VARIABLE RELOP CHARACTER VARIABLE C C THE CHARACTER ENTITIES ARE THE SAME LENGTH, AND THE LENGTHS 3 C AND 41 ARE USED IN THESE TESTS. C C C **** FCVS PROGRAM 205 - TEST 111 **** C C IVTNUM = 111 IF (ICZERO) 31110, 1110, 31110 1110 CONTINUE IVCOMP = 1 IVCORR = 3 CVTN01 = 'ABC' CVTN07 = 'BBC' IF (CVTN01 .EQ. CVTN07) IVCOMP = IVCOMP * 2 IF (CVTN01 .NE. CVTN07) IVCOMP = IVCOMP * 3 41110 IF (IVCOMP - 3) 21110, 11110, 21110 31110 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11110, 1121, 21110 11110 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1121 21110 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1121 CONTINUE C C **** FCVS PROGRAM 205 - TEST 112 **** C C IVTNUM = 112 IF (ICZERO) 31120, 1120, 31120 1120 CONTINUE IVCOMP = 1 IVCORR = 6 CVTN05 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO' CVTN11 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO' IF (CVTN05 .GE. CVTN11) IVCOMP = IVCOMP * 2 IF (CVTN05 .LE. CVTN11) IVCOMP = IVCOMP * 3 41120 IF (IVCOMP - 6) 21120, 11120, 21120 31120 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11120, 1131, 21120 11120 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1131 21120 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1131 CONTINUE C C TEST 113 AND TEST 114 VERIFY THE CHARACTER RELATIONAL C EXPRESSION OF THE FORM C C CHARACTER ARRAY ELEMENT RELOP CHARACTER CONSTANT C C THE CHARACTER ENTITIES ARE THE SAME LENGTH, AND THE LENGTHS 7 AND C 25 ARE USED IN THESE TESTS. C C C **** FCVS PROGRAM 205 - TEST 113 **** C C IVTNUM = 113 IF (ICZERO) 31130, 1130, 31130 1130 CONTINUE IVCOMP = 1 IVCORR = 6 CATN12(3) = 'AB012CD' IF (CATN12(3) .LT. 'AB013CD') IVCOMP = IVCOMP * 2 IF ('AB013CD' .GT. CATN12(3)) IVCOMP = IVCOMP * 3 41130 IF (IVCOMP - 6) 21130, 11130, 21130 31130 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11130, 1141, 21130 11130 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1141 21130 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1141 CONTINUE C C **** FCVS PROGRAM 205 - TEST 114 **** C C IVTNUM = 114 IF (ICZERO) 31140, 1140, 31140 1140 CONTINUE IVCOMP = 1 IVCORR = 2 CATN14(1) = 'ABCDEFGHIJKLMNOPQRSTUVWXX' IF (CATN14(1) .NE. 'ABCDEFGHIJKLMNOPQRSTUVWXY') 1 IVCOMP = IVCOMP * 2 IF (CATN14(1) .EQ. 'ABCDEFGHIJKLMNOPQRSTUVWXY') 1 IVCOMP = IVCOMP * 3 41140 IF (IVCOMP - 2) 21140, 11140, 21140 31140 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11140, 1151, 21140 11140 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1151 21140 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1151 CONTINUE C C **** FCVS PROGRAM 205 - TEST 115 **** C C TEST 115 VERIFIES THE CHARACTER RELATIONAL EXPRESSION C OF THE FORM C C CHARACTER ARRAY ELEMENT RELOP CHARACTER VARIABLE C C THE CHARACTER ENTITIES ARE 12 CHARACTERS IN LENGTH. C IVTNUM = 115 IF (ICZERO) 31150, 1150, 31150 1150 CONTINUE IVCOMP = 1 IVCORR = 2 CATN13(3) = 'ABC+AAB/CDDF' IF (CATN13(3) .LT. 'BBC+AAB/CCCC') IVCOMP = IVCOMP * 2 IF (CATN13(3) .GT. 'BBC+AAB/CCCC') IVCOMP = IVCOMP * 3 41150 IF (IVCOMP - 2) 21150, 11150, 21150 31150 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11150, 1161, 21150 11150 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1161 21150 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1161 CONTINUE C C **** FCVS PROGRAM 205 - TEST 116 **** C C TEST 116 VERIFIES THE CHARACTER RELATIONAL EXPRESSION C OF THE FORM C C CHARACTER ARRAY ELEMENT RELOP CHARACTER ARRAY ELEMENT C C THE CHARACTER ENTITIES ARE 57 CHARACTERS IN LENGTH. C IVTNUM = 116 IF (ICZERO) 31160, 1160, 31160 1160 CONTINUE IVCOMP = 1 IVCORR = 30 CATN16(1) = 1 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ//012' CATN16(2) = 1 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ//112' IF (CATN16 (1) .LT. CATN16 (2)) IVCOMP = IVCOMP * 2 IF (CATN16 (1) .NE. CATN16 (2)) IVCOMP = IVCOMP * 3 IF (CATN16 (1) .LE. CATN16 (2)) IVCOMP = IVCOMP * 5 41160 IF (IVCOMP - 30) 21160, 11160, 21160 31160 IVDELE = IVDELE + 1 WRITE (I02,80000) IVTNUM IF (ICZERO) 11160, 1171, 21160 11160 IVPASS = IVPASS + 1 WRITE (I02,80002) IVTNUM GO TO 1171 21160 IVFAIL = IVFAIL + 1 WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 1171 CONTINUE C C C WRITE OUT TEST SUMMARY C WRITE (I02,90004) WRITE (I02,90014) WRITE (I02,90004) WRITE (I02,90000) WRITE (I02,90004) WRITE (I02,90020) IVFAIL WRITE (I02,90022) IVPASS WRITE (I02,90024) IVDELE STOP 90001 FORMAT (1H ,24X,5HFM205) 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM205) C C FORMATS FOR TEST DETAIL LINES C 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) C C FORMAT STATEMENTS FOR PAGE HEADERS C 90002 FORMAT (1H1) 90004 FORMAT (1H ) 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 90008 FORMAT (1H ,21X,11HVERSION 1.0) 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 90014 FORMAT (1H ,5X,46H----------------------------------------------) 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) C C FORMAT STATEMENTS FOR RUN SUMMARY C 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) END