| PROGRAM FM007 |
| |
| C COMMENT SECTION 00010007 |
| C 00020007 |
| C FM007 00030007 |
| C 00040007 |
| C THIS ROUTINE TESTS THE USE OF DATA INITIALIZATION STATEMENTS. 00050007 |
| C DATA INITIALIZATION STATEMENTS ARE USED TO DEFINE INITIAL VALUES 00060007 |
| C OF INTEGER VARIABLES. THE DATA STATEMENTS CONTAIN UNSIGNED, 00070007 |
| C POSITIVE SIGNED AND NEGATIVE SIGNED INTEGER CONSTANTS. THE LAST 00080007 |
| C DATA STATEMENT CONTAINS THE FORM 00090007 |
| C J*INTEGER CONSTANT 00100007 |
| C WHICH INDICATES THE CONSTANT IS TO BE SPECIFIED J TIMES. 00110007 |
| C 00120007 |
| C THE TESTS IN THIS ROUTINE CHECK THE INTEGER VARIABLES IN THE 00130007 |
| C DATA STATEMENT FOR THE ASSIGNED INITIAL VALUES. 00140007 |
| C 00150007 |
| C REFERENCES 00160007 |
| C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00170007 |
| C X3.9-1978 00180007 |
| C 00190007 |
| C SECTION 4.3, INTEGER TYPE 00200007 |
| C SECTION 4.3.1, INTEGER CONSTANT 00210007 |
| C SECTION 9, DATA STATEMENT 00220007 |
| C 00230007 |
| C 00240007 |
| C DATA INITIALIZATION STATEMENTS 00250007 |
| C 00260007 |
| DATA IVON01,IVON02,IVON03,IVON04,IVON05/3,76,587,9999,21111/ 00270007 |
| DATA IVON06,IVON07,IVON08,IVON09,IVON10/+3,+76,+587,+9999,+21111/ 00280007 |
| DATA IVON11,IVON12,IVON13,IVON14,IVON15/-3,-76,-587,-9999,-21111/ 00290007 |
| DATA IVON16,IVON17,IVON18,IVON19,IVON20/ 2*119, 2*7, -427/ 00300007 |
| C 00310007 |
| C 00320007 |
| C ********************************************************** 00330007 |
| C 00340007 |
| C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00350007 |
| C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00360007 |
| C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00370007 |
| C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00380007 |
| C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00390007 |
| C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00400007 |
| C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00410007 |
| C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00420007 |
| C OF EXECUTING THESE TESTS. 00430007 |
| C 00440007 |
| C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00450007 |
| C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00460007 |
| C 00470007 |
| C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00480007 |
| C 00490007 |
| C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00500007 |
| C SOFTWARE STANDARDS VALIDATION GROUP 00510007 |
| C BUILDING 225 RM A266 00520007 |
| C GAITHERSBURG, MD 20899 00530007 |
| C ********************************************************** 00540007 |
| C 00550007 |
| C 00560007 |
| C 00570007 |
| C INITIALIZATION SECTION 00580007 |
| C 00590007 |
| C INITIALIZE CONSTANTS 00600007 |
| C ************** 00610007 |
| C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00620007 |
| I01 = 5 00630007 |
| C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00640007 |
| I02 = 6 00650007 |
| C SYSTEM ENVIRONMENT SECTION 00660007 |
| C 00670007 |
| CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00680007 |
| C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00690007 |
| C (UNIT NUMBER FOR CARD READER). 00700007 |
| CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00710007 |
| C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00720007 |
| C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00730007 |
| C 00740007 |
| CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00750007 |
| C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00760007 |
| C (UNIT NUMBER FOR PRINTER). 00770007 |
| CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00780007 |
| C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00790007 |
| C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00800007 |
| C 00810007 |
| IVPASS=0 00820007 |
| IVFAIL=0 00830007 |
| IVDELE=0 00840007 |
| ICZERO=0 00850007 |
| C 00860007 |
| C WRITE PAGE HEADERS 00870007 |
| WRITE (I02,90000) 00880007 |
| WRITE (I02,90001) 00890007 |
| WRITE (I02,90002) 00900007 |
| WRITE (I02, 90002) 00910007 |
| WRITE (I02,90003) 00920007 |
| WRITE (I02,90002) 00930007 |
| WRITE (I02,90004) 00940007 |
| WRITE (I02,90002) 00950007 |
| WRITE (I02,90011) 00960007 |
| WRITE (I02,90002) 00970007 |
| WRITE (I02,90002) 00980007 |
| WRITE (I02,90005) 00990007 |
| WRITE (I02,90006) 01000007 |
| WRITE (I02,90002) 01010007 |
| C TEST SECTION 01020007 |
| C 01030007 |
| C TESTS 80 THROUGH 84 CHECK THE VALUES INITIALIZED BY THE DATA 01040007 |
| C STATEMENT CONTAINING IVON01,..., IVON05. 01050007 |
| C 01060007 |
| 801 CONTINUE 01070007 |
| IVTNUM = 80 01080007 |
| C 01090007 |
| C **** TEST 80 **** 01100007 |
| C 01110007 |
| IF (ICZERO) 30800, 800, 30800 01120007 |
| 800 CONTINUE 01130007 |
| IVCOMP = IVON01 01140007 |
| GO TO 40800 01150007 |
| 30800 IVDELE = IVDELE + 1 01160007 |
| WRITE (I02,80003) IVTNUM 01170007 |
| IF (ICZERO) 40800, 811, 40800 01180007 |
| 40800 IF (IVCOMP - 3) 20800, 10800,20800 01190007 |
| 10800 IVPASS = IVPASS + 1 01200007 |
| WRITE (I02,80001) IVTNUM 01210007 |
| GO TO 811 01220007 |
| 20800 IVFAIL = IVFAIL + 1 01230007 |
| IVCORR = 3 01240007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01250007 |
| 811 CONTINUE 01260007 |
| IVTNUM = 81 01270007 |
| C 01280007 |
| C **** TEST 81 **** 01290007 |
| C 01300007 |
| IF (ICZERO) 30810, 810, 30810 01310007 |
| 810 CONTINUE 01320007 |
| IVCOMP = IVON02 01330007 |
| GO TO 40810 01340007 |
| 30810 IVDELE = IVDELE + 1 01350007 |
| WRITE (I02,80003) IVTNUM 01360007 |
| IF (ICZERO) 40810, 821, 40810 01370007 |
| 40810 IF (IVCOMP - 76) 20810, 10810, 20810 01380007 |
| 10810 IVPASS = IVPASS + 1 01390007 |
| WRITE (I02,80001) IVTNUM 01400007 |
| GO TO 821 01410007 |
| 20810 IVFAIL = IVFAIL + 1 01420007 |
| IVCORR = 76 01430007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01440007 |
| 821 CONTINUE 01450007 |
| IVTNUM = 82 01460007 |
| C 01470007 |
| C **** TEST 82 **** 01480007 |
| C 01490007 |
| IF (ICZERO) 30820, 820, 30820 01500007 |
| 820 CONTINUE 01510007 |
| IVCOMP = IVON03 01520007 |
| GO TO 40820 01530007 |
| 30820 IVDELE = IVDELE + 1 01540007 |
| WRITE (I02,80003) IVTNUM 01550007 |
| IF (ICZERO) 40820, 831, 40820 01560007 |
| 40820 IF (IVCOMP - 587) 20820, 10820, 20820 01570007 |
| 10820 IVPASS = IVPASS + 1 01580007 |
| WRITE (I02,80001) IVTNUM 01590007 |
| GO TO 831 01600007 |
| 20820 IVFAIL = IVFAIL + 1 01610007 |
| IVCORR = 587 01620007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01630007 |
| 831 CONTINUE 01640007 |
| IVTNUM = 83 01650007 |
| C 01660007 |
| C **** TEST 83 **** 01670007 |
| C 01680007 |
| IF (ICZERO) 30830, 830, 30830 01690007 |
| 830 CONTINUE 01700007 |
| IVCOMP =IVON04 01710007 |
| GO TO 40830 01720007 |
| 30830 IVDELE = IVDELE + 1 01730007 |
| WRITE (I02,80003) IVTNUM 01740007 |
| IF (ICZERO) 40830, 841, 40830 01750007 |
| 40830 IF (IVCOMP - 9999) 20830, 10830, 20830 01760007 |
| 10830 IVPASS = IVPASS + 1 01770007 |
| WRITE (I02,80001) IVTNUM 01780007 |
| GO TO 841 01790007 |
| 20830 IVFAIL = IVFAIL + 1 01800007 |
| IVCORR = 9999 01810007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01820007 |
| 841 CONTINUE 01830007 |
| IVTNUM = 84 01840007 |
| C 01850007 |
| C **** TEST 84 **** 01860007 |
| C 01870007 |
| IF (ICZERO) 30840, 840, 30840 01880007 |
| 840 CONTINUE 01890007 |
| IVCOMP = IVON05 01900007 |
| GO TO 40840 01910007 |
| 30840 IVDELE = IVDELE + 1 01920007 |
| WRITE (I02,80003) IVTNUM 01930007 |
| IF (ICZERO) 40840, 851, 40840 01940007 |
| 40840 IF (IVCOMP - 21111) 20840, 10840, 20840 01950007 |
| 10840 IVPASS = IVPASS + 1 01960007 |
| WRITE (I02,80001) IVTNUM 01970007 |
| GO TO 851 01980007 |
| 20840 IVFAIL = IVFAIL + 1 01990007 |
| IVCORR = 21111 02000007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02010007 |
| C 02020007 |
| C TESTS 85 THROUGH 89 CHECK THE VALUES INITIALIZED BY THE DATA 02030007 |
| C STATEMENT CONTAINING IVON06,...,IVON10. 02040007 |
| C 02050007 |
| 851 CONTINUE 02060007 |
| IVTNUM = 85 02070007 |
| C 02080007 |
| C **** TEST 85 **** 02090007 |
| C 02100007 |
| IF (ICZERO) 30850, 850, 30850 02110007 |
| 850 CONTINUE 02120007 |
| IVCOMP=IVON06 02130007 |
| GO TO 40850 02140007 |
| 30850 IVDELE = IVDELE + 1 02150007 |
| WRITE (I02,80003) IVTNUM 02160007 |
| IF (ICZERO) 40850, 861, 40850 02170007 |
| 40850 IF (IVCOMP - 3) 20850, 10850, 20850 02180007 |
| 10850 IVPASS = IVPASS + 1 02190007 |
| WRITE (I02,80001) IVTNUM 02200007 |
| GO TO 861 02210007 |
| 20850 IVFAIL = IVFAIL + 1 02220007 |
| IVCORR = 3 02230007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02240007 |
| 861 CONTINUE 02250007 |
| IVTNUM = 86 02260007 |
| C 02270007 |
| C **** TEST 86 **** 02280007 |
| C 02290007 |
| IF (ICZERO) 30860, 860, 30860 02300007 |
| 860 CONTINUE 02310007 |
| IVCOMP = IVON07 02320007 |
| GO TO 40860 02330007 |
| 30860 IVDELE = IVDELE + 1 02340007 |
| WRITE (I02,80003) IVTNUM 02350007 |
| IF (ICZERO) 40860, 871, 40860 02360007 |
| 40860 IF (IVCOMP - 76) 20860, 10860, 20860 02370007 |
| 10860 IVPASS = IVPASS + 1 02380007 |
| WRITE (I02,80001) IVTNUM 02390007 |
| GO TO 871 02400007 |
| 20860 IVFAIL = IVFAIL + 1 02410007 |
| IVCORR = 76 02420007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02430007 |
| 871 CONTINUE 02440007 |
| IVTNUM = 87 02450007 |
| C 02460007 |
| C **** TEST 87 **** 02470007 |
| C 02480007 |
| IF (ICZERO) 30870, 870, 30870 02490007 |
| 870 CONTINUE 02500007 |
| IVCOMP = IVON08 02510007 |
| GO TO 40870 02520007 |
| 30870 IVDELE = IVDELE + 1 02530007 |
| WRITE (I02,80003) IVTNUM 02540007 |
| IF (ICZERO) 40870, 881, 40870 02550007 |
| 40870 IF (IVCOMP - 587) 20870, 10870, 20870 02560007 |
| 10870 IVPASS = IVPASS + 1 02570007 |
| WRITE (I02,80001) IVTNUM 02580007 |
| GO TO 881 02590007 |
| 20870 IVFAIL = IVFAIL + 1 02600007 |
| IVCORR = 587 02610007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02620007 |
| 881 CONTINUE 02630007 |
| IVTNUM = 88 02640007 |
| C 02650007 |
| C **** TEST 88 **** 02660007 |
| C 02670007 |
| IF (ICZERO) 30880, 880, 30880 02680007 |
| 880 CONTINUE 02690007 |
| IVCOMP = IVON09 02700007 |
| GO TO 40880 02710007 |
| 30880 IVDELE = IVDELE + 1 02720007 |
| WRITE (I02,80003) IVTNUM 02730007 |
| IF (ICZERO) 40880, 891, 40880 02740007 |
| 40880 IF (IVCOMP - 9999) 20880, 10880, 20880 02750007 |
| 10880 IVPASS = IVPASS + 1 02760007 |
| WRITE (I02,80001) IVTNUM 02770007 |
| GO TO 891 02780007 |
| 20880 IVFAIL = IVFAIL + 1 02790007 |
| IVCORR = 9999 02800007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02810007 |
| 891 CONTINUE 02820007 |
| IVTNUM = 89 02830007 |
| C 02840007 |
| C **** TEST 89 **** 02850007 |
| C 02860007 |
| IF (ICZERO) 30890, 890, 30890 02870007 |
| 890 CONTINUE 02880007 |
| IVCOMP = IVON10 02890007 |
| GO TO 40890 02900007 |
| 30890 IVDELE = IVDELE + 1 02910007 |
| WRITE (I02,80003) IVTNUM 02920007 |
| IF (ICZERO) 40890, 901, 40890 02930007 |
| 40890 IF (IVCOMP - 21111) 20890, 10890, 20890 02940007 |
| 10890 IVPASS = IVPASS + 1 02950007 |
| WRITE (I02,80001) IVTNUM 02960007 |
| GO TO 901 02970007 |
| 20890 IVFAIL = IVFAIL + 1 02980007 |
| IVCORR= 21111 02990007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03000007 |
| C 03010007 |
| C TESTS 90 THROUGH 94 CHECK THE VALUES INITIALIZED BY THE DATA 03020007 |
| C STATEMENT CONTAINING IVON11,...,IVON15. 03030007 |
| C 03040007 |
| 901 CONTINUE 03050007 |
| IVTNUM = 90 03060007 |
| C 03070007 |
| C **** TEST 90 **** 03080007 |
| C 03090007 |
| IF (ICZERO) 30900, 900, 30900 03100007 |
| 900 CONTINUE 03110007 |
| IVCOMP = IVON11 03120007 |
| GO TO 40900 03130007 |
| 30900 IVDELE = IVDELE + 1 03140007 |
| WRITE (I02,80003) IVTNUM 03150007 |
| IF (ICZERO) 40900, 911, 40900 03160007 |
| 40900 IF (IVCOMP + 3) 20900, 10900, 20900 03170007 |
| 10900 IVPASS = IVPASS + 1 03180007 |
| WRITE (I02,80001) IVTNUM 03190007 |
| GO TO 911 03200007 |
| 20900 IVFAIL = IVFAIL + 1 03210007 |
| IVCORR = -3 03220007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03230007 |
| 911 CONTINUE 03240007 |
| IVTNUM = 91 03250007 |
| C 03260007 |
| C **** TEST 91 **** 03270007 |
| C 03280007 |
| IF (ICZERO) 30910, 910, 30910 03290007 |
| 910 CONTINUE 03300007 |
| IVCOMP = IVON12 03310007 |
| GO TO 40910 03320007 |
| 30910 IVDELE = IVDELE + 1 03330007 |
| WRITE (I02,80003) IVTNUM 03340007 |
| IF (ICZERO) 40910, 921, 40910 03350007 |
| 40910 IF (IVCOMP + 76) 20910, 10910, 20910 03360007 |
| 10910 IVPASS = IVPASS + 1 03370007 |
| WRITE (I02,80001) IVTNUM 03380007 |
| GO TO 921 03390007 |
| 20910 IVFAIL = IVFAIL + 1 03400007 |
| IVCORR = -76 03410007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03420007 |
| 921 CONTINUE 03430007 |
| IVTNUM = 92 03440007 |
| C 03450007 |
| C **** TEST 92 **** 03460007 |
| C 03470007 |
| IF (ICZERO) 30920, 920, 30920 03480007 |
| 920 CONTINUE 03490007 |
| IVCOMP= IVON13 03500007 |
| GO TO 40920 03510007 |
| 30920 IVDELE = IVDELE + 1 03520007 |
| WRITE (I02,80003) IVTNUM 03530007 |
| IF (ICZERO) 40920, 931, 40920 03540007 |
| 40920 IF (IVCOMP + 587) 20920, 10920, 20920 03550007 |
| 10920 IVPASS = IVPASS + 1 03560007 |
| WRITE (I02,80001) IVTNUM 03570007 |
| GO TO 931 03580007 |
| 20920 IVFAIL = IVFAIL + 1 03590007 |
| IVCORR = -587 03600007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03610007 |
| 931 CONTINUE 03620007 |
| IVTNUM = 93 03630007 |
| C 03640007 |
| C **** TEST 93 **** 03650007 |
| C 03660007 |
| IF (ICZERO) 30930, 930, 30930 03670007 |
| 930 CONTINUE 03680007 |
| IVCOMP = IVON14 03690007 |
| GO TO 40930 03700007 |
| 30930 IVDELE = IVDELE + 1 03710007 |
| WRITE (I02,80003) IVTNUM 03720007 |
| IF (ICZERO) 40930, 941, 40930 03730007 |
| 40930 IF (IVCOMP + 9999) 20930, 10930, 20930 03740007 |
| 10930 IVPASS = IVPASS + 1 03750007 |
| WRITE (I02,80001) IVTNUM 03760007 |
| GO TO 941 03770007 |
| 20930 IVFAIL = IVFAIL + 1 03780007 |
| IVCORR = -9999 03790007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03800007 |
| 941 CONTINUE 03810007 |
| IVTNUM = 94 03820007 |
| C 03830007 |
| C **** TEST 94 **** 03840007 |
| C 03850007 |
| IF (ICZERO) 30940, 940, 30940 03860007 |
| 940 CONTINUE 03870007 |
| IVCOMP = IVON15 03880007 |
| GO TO 40940 03890007 |
| 30940 IVDELE = IVDELE + 1 03900007 |
| WRITE (I02,80003) IVTNUM 03910007 |
| IF (ICZERO) 40940, 951, 40940 03920007 |
| 40940 IF (IVCOMP + 21111) 20940, 10940, 20940 03930007 |
| 10940 IVPASS = IVPASS + 1 03940007 |
| WRITE (I02,80001) IVTNUM 03950007 |
| GO TO 951 03960007 |
| 20940 IVFAIL = IVFAIL + 1 03970007 |
| IVCORR = -21111 03980007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03990007 |
| C 04000007 |
| C TESTS 95 THROUGH 99 CHECK THE VALUES INITIALIZED BY THE DATA 04010007 |
| C STATEMENT CONTAINING IVON16,...,IVON20. 04020007 |
| C 04030007 |
| 951 CONTINUE 04040007 |
| IVTNUM = 95 04050007 |
| C 04060007 |
| C **** TEST 95 **** 04070007 |
| C 04080007 |
| IF (ICZERO) 30950, 950, 30950 04090007 |
| 950 CONTINUE 04100007 |
| IVCOMP =IVON16 04110007 |
| GO TO 40950 04120007 |
| 30950 IVDELE = IVDELE + 1 04130007 |
| WRITE (I02,80003) IVTNUM 04140007 |
| IF (ICZERO) 40950, 961, 40950 04150007 |
| 40950 IF (IVCOMP - 119) 20950, 10950, 20950 04160007 |
| 10950 IVPASS = IVPASS + 1 04170007 |
| WRITE (I02,80001) IVTNUM 04180007 |
| GO TO 961 04190007 |
| 20950 IVFAIL = IVFAIL + 1 04200007 |
| IVCORR = 119 04210007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04220007 |
| 961 CONTINUE 04230007 |
| IVTNUM = 96 04240007 |
| C 04250007 |
| C **** TEST 96 **** 04260007 |
| C 04270007 |
| IF (ICZERO) 30960, 960, 30960 04280007 |
| 960 CONTINUE 04290007 |
| IVCOMP=IVON17 04300007 |
| GO TO 40960 04310007 |
| 30960 IVDELE = IVDELE + 1 04320007 |
| WRITE (I02,80003) IVTNUM 04330007 |
| IF (ICZERO) 40960, 971, 40960 04340007 |
| 40960 IF (IVCOMP - 119) 20960, 10960, 20960 04350007 |
| 10960 IVPASS = IVPASS + 1 04360007 |
| WRITE (I02,80001) IVTNUM 04370007 |
| GO TO 971 04380007 |
| 20960 IVFAIL = IVFAIL + 1 04390007 |
| IVCORR = 119 04400007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04410007 |
| 971 CONTINUE 04420007 |
| IVTNUM = 97 04430007 |
| C 04440007 |
| C **** TEST 97 **** 04450007 |
| C 04460007 |
| IF (ICZERO) 30970, 970, 30970 04470007 |
| 970 CONTINUE 04480007 |
| IVCOMP = IVON18 04490007 |
| GO TO 40970 04500007 |
| 30970 IVDELE = IVDELE + 1 04510007 |
| WRITE (I02,80003) IVTNUM 04520007 |
| IF (ICZERO) 40970, 981, 40970 04530007 |
| 40970 IF (IVCOMP - 7) 20970, 10970, 20970 04540007 |
| 10970 IVPASS = IVPASS + 1 04550007 |
| WRITE (I02,80001) IVTNUM 04560007 |
| GO TO 981 04570007 |
| 20970 IVFAIL = IVFAIL + 1 04580007 |
| IVCORR = 7 04590007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04600007 |
| 981 CONTINUE 04610007 |
| IVTNUM = 98 04620007 |
| C 04630007 |
| C **** TEST 98 **** 04640007 |
| C 04650007 |
| IF (ICZERO) 30980, 980, 30980 04660007 |
| 980 CONTINUE 04670007 |
| IVCOMP = IVON19 04680007 |
| GO TO 40980 04690007 |
| 30980 IVDELE = IVDELE + 1 04700007 |
| WRITE (I02,80003) IVTNUM 04710007 |
| IF (ICZERO) 40980, 991, 40980 04720007 |
| 40980 IF (IVCOMP - 7) 20980, 10980, 20980 04730007 |
| 10980 IVPASS = IVPASS + 1 04740007 |
| WRITE (I02,80001) IVTNUM 04750007 |
| GO TO 991 04760007 |
| 20980 IVFAIL = IVFAIL + 1 04770007 |
| IVCORR = 7 04780007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04790007 |
| 991 CONTINUE 04800007 |
| IVTNUM = 99 04810007 |
| C 04820007 |
| C **** TEST 99 **** 04830007 |
| C 04840007 |
| IF (ICZERO) 30990, 990, 30990 04850007 |
| 990 CONTINUE 04860007 |
| IVCOMP = IVON20 04870007 |
| GO TO 40990 04880007 |
| 30990 IVDELE = IVDELE + 1 04890007 |
| WRITE (I02,80003) IVTNUM 04900007 |
| IF (ICZERO) 40990, 1001, 40990 04910007 |
| 40990 IF (IVCOMP + 427) 20990,10990,20990 04920007 |
| 10990 IVPASS = IVPASS + 1 04930007 |
| WRITE (I02,80001) IVTNUM 04940007 |
| GO TO 1001 04950007 |
| 20990 IVFAIL = IVFAIL + 1 04960007 |
| IVCORR = -427 04970007 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04980007 |
| 1001 CONTINUE 04990007 |
| C 05000007 |
| C WRITE PAGE FOOTINGS AND RUN SUMMARIES 05010007 |
| 99999 CONTINUE 05020007 |
| WRITE (I02,90002) 05030007 |
| WRITE (I02,90006) 05040007 |
| WRITE (I02,90002) 05050007 |
| WRITE (I02,90002) 05060007 |
| WRITE (I02,90007) 05070007 |
| WRITE (I02,90002) 05080007 |
| WRITE (I02,90008) IVFAIL 05090007 |
| WRITE (I02,90009) IVPASS 05100007 |
| WRITE (I02,90010) IVDELE 05110007 |
| C 05120007 |
| C 05130007 |
| C TERMINATE ROUTINE EXECUTION 05140007 |
| STOP 05150007 |
| C 05160007 |
| C FORMAT STATEMENTS FOR PAGE HEADERS 05170007 |
| 90000 FORMAT ("1") 05180007 |
| 90002 FORMAT (" ") 05190007 |
| 90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 05200007 |
| 90003 FORMAT (" ",21X,"VERSION 2.1" ) 05210007 |
| 90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 05220007 |
| 90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 05230007 |
| 90006 FORMAT (" ",5X,"----------------------------------------------" ) 05240007 |
| 90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 05250007 |
| C 05260007 |
| C FORMAT STATEMENTS FOR RUN SUMMARIES 05270007 |
| 90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" ) 05280007 |
| 90009 FORMAT (" ",15X,I5," TESTS PASSED" ) 05290007 |
| 90010 FORMAT (" ",15X,I5," TESTS DELETED" ) 05300007 |
| C 05310007 |
| C FORMAT STATEMENTS FOR TEST RESULTS 05320007 |
| 80001 FORMAT (" ",4X,I5,7X,"PASS") 05330007 |
| 80002 FORMAT (" ",4X,I5,7X,"FAIL") 05340007 |
| 80003 FORMAT (" ",4X,I5,7X,"DELETED") 05350007 |
| 80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 05360007 |
| 80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 05370007 |
| C 05380007 |
| 90007 FORMAT (" ",20X,"END OF PROGRAM FM007" ) 05390007 |
| END 05400007 |