PROGRAM FM404 C***********************************************************************00010404 C***** FORTRAN 77 00020404 C***** FM404 AFMTS - (022) 00030404 C***** 00040404 C***********************************************************************00050404 C***** GENERAL PURPOSE SUBSET REFS00060404 C***** TO TEST SIMPLE FORMAT AND FORMATTED DATA 12.9.5.200070404 C***** TRANSFER STATEMENTS IN EXTERNAL SEQUENTIAL I/O SO 13.1.1 00080404 C***** THAT THESE FEATURES MAY BE USED IN OTHER TEST 12.8.1 00090404 C***** PROGRAM SEGMENTS FOR CHARACTER DATA TYPES. 4.8 00100404 C***** 00110404 C***** RESTRICTIONS OBSERVED 00120404 C***** * ALL FORMAT STATEMENTS ARE LABELED 12.8.2 00130404 C***** * H AND X DESCRIPTORS ARE NEVER REPEATED 13.1.1 00140404 C***** * FIELD WIDTH IS NEVER ZERO 13.5.11 00150404 C***** * IF AN I/O LIST SPECIFIES AT LEAST ONE LIST ITEM 13.3 00160404 C***** AT LEAST ONE REPEATABLE EDIT DESCRIPTOR MUST EXIST 00170404 C***** IN THE FORMAT SPECIFICATION. 00180404 C***** * ITEMS IN I/O LIST CORRESPOND TO FORMAT DESCRIPTORS 13.3 00190404 C***** 00200404 CBB** ********************** BBCCOMNT **********************************00210404 C**** 00220404 C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00230404 C**** VERSION 2.1 00240404 C**** 00250404 C**** 00260404 C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00270404 C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00280404 C**** SOFTWARE STANDARDS VALIDATION GROUP 00290404 C**** BUILDING 225 RM A266 00300404 C**** GAITHERSBURG, MD 20899 00310404 C**** 00320404 C**** 00330404 C**** 00340404 CBE** ********************** BBCCOMNT **********************************00350404 C***** 00360404 C INPUT DATA TO THIS SEG. CONSISTS OF 6 DATA CARD IMAGES IN COLS. 1 - 5500370404 COL. 1--------------------------------------------47 00380404 CARD 1 QRSTMNOPIJKLYZ127890ABCD3456EFGHUVWX/(),.' =+-* 00390404 CARD 2 AABABCABCDABCDEABCDEFWXYZWXYZWXYZWXYZWXYZWXYZ 00400404 CARD 3 112123123412345123456 00410404 CARD 4 GGGGHHHHIIIIJJJJ 00420404 CARD 5 ----LLLL 00430404 CARD 6 ....NNNN 00440404 C***** 00450404 C***** S P E C I F I C A T I O N S SEGMENT 022 00460404 C***** 00470404 CHARACTER*1 A1VK 00480404 CHARACTER*2 A2VK 00490404 CHARACTER*3 A3VK 00500404 CHARACTER*4 A4VK, A41K(6), A43K(2,2,3) 00510404 CHARACTER*5 A5VK 00520404 CHARACTER*6 A6VK 00530404 C***** 00540404 CBB** ********************** BBCINITA **********************************00550404 C**** SPECIFICATION STATEMENTS 00560404 C**** 00570404 CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00580404 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00590404 CBE** ********************** BBCINITA **********************************00600404 CBB** ********************** BBCINITB **********************************00610404 C**** INITIALIZE SECTION 00620404 DATA ZVERS, ZVERSD, ZDATE 00630404 1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00640404 DATA ZCOMPL, ZNAME, ZTAPE 00650404 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00660404 DATA ZPROJ, ZTAPED, ZPROG 00670404 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00680404 DATA REMRKS /' '/ 00690404 C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00700404 C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00710404 C**** 00720404 CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00730404 CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00740404 CZ03 ZPROG = 'PROGRAM NAME' 00750404 CZ04 ZDATE = 'DATE OF TEST' 00760404 CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00770404 CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00780404 CZ07 ZNAME = 'NAME OF USER' 00790404 CZ08 ZTAPE = 'TAPE OWNER/ID' 00800404 CZ09 ZTAPED = 'DATE TAPE COPIED' 00810404 C 00820404 IVPASS = 0 00830404 IVFAIL = 0 00840404 IVDELE = 0 00850404 IVINSP = 0 00860404 IVTOTL = 0 00870404 IVTOTN = 0 00880404 ICZERO = 0 00890404 C 00900404 C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00910404 I01 = 05 00920404 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00930404 I02 = 06 00940404 C 00950404 CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00960404 C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00970404 CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00980404 C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00990404 C 01000404 CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 01010404 C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 01020404 CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 01030404 C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 01040404 C 01050404 CBE** ********************** BBCINITB **********************************01060404 IRVI = I01 01070404 NUVI = I02 01080404 IVTOTL = 5 01090404 ZPROG = 'FM404' 01100404 CBB** ********************** BBCHED0A **********************************01110404 C**** 01120404 C**** WRITE REPORT TITLE 01130404 C**** 01140404 WRITE (I02, 90002) 01150404 WRITE (I02, 90006) 01160404 WRITE (I02, 90007) 01170404 WRITE (I02, 90008) ZVERS, ZVERSD 01180404 WRITE (I02, 90009) ZPROG, ZPROG 01190404 WRITE (I02, 90010) ZDATE, ZCOMPL 01200404 CBE** ********************** BBCHED0A **********************************01210404 C***** 01220404 C***** HEADER FOR SEGMENT 22 01230404 WRITE (NUVI,02200) 01240404 02200 FORMAT(" ", /1X," AFMTS - (022) FORMATTED DATA TRANSFER" // 01250404 1 1X," USING A-CONVERSION" //1X, 01260404 2 " SUBSET REFS - 12.9.5.2 13.3 13.5.11" ) 01270404 CBB** ********************** BBCHED0B **********************************01280404 C**** WRITE DETAIL REPORT HEADERS 01290404 C**** 01300404 WRITE (I02,90004) 01310404 WRITE (I02,90004) 01320404 WRITE (I02,90013) 01330404 WRITE (I02,90014) 01340404 WRITE (I02,90015) IVTOTL 01350404 CBE** ********************** BBCHED0B **********************************01360404 C***** 01370404 C***** TESTS THAT ALL FORTRAN (SUBSET) CHARACTERS MAY BE READ. 3.101380404 C***** 01390404 C***** INPUT CARD 1 01400404 READ(IRVI, 02201) A43K(1,1,1), A43K(1,1,2), A43K(1,1,3), 01410404 1 A43K(1,2,1), A43K(1,2,2), A43K(1,2,3), A43K(2,1,1), 01420404 2 A43K(2,1,2), A43K(2,1,3), A6VK, A5VK 01430404 02201 FORMAT(9A4, A6, A5) 01440404 CT001* TEST 1 01450404 IVTNUM = 1 01460404 REMRKS = '2 COMPUTED LINES EXPECTED' 01470404 WRITE (NUVI, 80004) IVTNUM, REMRKS 01480404 WRITE (NUVI, 80020) 01490404 WRITE(NUVI, 70010) A43K(1,2,3), A43K(2,1,2), A43K(1,1,3), 01500404 1 A43K(1,1,2), A43K(1,1,1), A43K(2,1,3), A43K(1,2,1), 01510404 2 A43K(2,1,1), A43K(1,2,2), A5VK, A6VK 01520404 70010 FORMAT(26X,9A4/25X,A5,A6) 01530404 IVINSP = IVINSP + 1 01540404 WRITE (NUVI, 70011) 01550404 70011 FORMAT(" ",16X,"CORRECT: " ,22X, "CORRESPONDING LINE(S) MUST M01560404 1ATCH") 01570404 WRITE (NUVI, 70012) 01580404 70012 FORMAT(26X, "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" / 01590404 1 26X,"=+-*/(),.'" ) 01600404 C***** 01610404 C***** AW CONVERSION IS USED IN THE FORMAT STATEMENTS. 3.5.1101620404 C***** SOME FORMAT DESCRIPTORS ARE REPEATED. 01630404 C***** THE FOLLOWING THREE CASES ARE USED FOR BOTH INPUT AND OUTPUT. 01640404 C***** INPUT FIELD WIDTH = CHARACTER VARIABLE LENGTH 01650404 C***** INPUT FIELD WIDTH < CHARACTER VARIABLE LENGTH 01660404 C***** INPUT FIELD WIDTH > CHARACTER VARIABLE LENGTH 01670404 C***** 01680404 C***** INPUT CARD 2 01690404 READ(IRVI, 02203) A41K(1), A41K(2), A41K(3), A41K(4), A41K(5), 01700404 1 A41K(6), A1VK, A2VK, A3VK, A4VK, A5VK, A6VK 01710404 02203 FORMAT(A1, A2, 1A3, A4, A5, 1(A6), A4, 2A4, 3(A4)) 01720404 CT002* TEST 2 01730404 IVTNUM = 2 01740404 REMRKS = '2 COMPUTED LINES EXPECTED' 01750404 WRITE (NUVI, 80004) IVTNUM, REMRKS 01760404 WRITE (NUVI, 80020) 01770404 WRITE(NUVI, 70020) A41K(1), A41K(2), A41K(3), A41K(4), A41K(5), 01780404 1 A41K(6), A6VK, A5VK, A4VK, A3VK, A2VK, A1VK 01790404 70020 FORMAT(26X,A4,A4,4A4/26X,A6,A5,A4,A3,A2,A1) 01800404 IVINSP = IVINSP + 1 01810404 WRITE (NUVI, 70011) 01820404 WRITE (NUVI, 70022) 01830404 70022 FORMAT(26X,"A AB ABC ABCDBCDECDEF" / 01840404 1 26X,"WXYZ WXYZ WXYZXYZYZZ" ) 01850404 C***** 01860404 CT003* TEST 3 01870404 IVTNUM = 3 01880404 REMRKS = '2 COMPUTED LINES EXPECTED' 01890404 WRITE (NUVI, 80004) IVTNUM, REMRKS 01900404 WRITE (NUVI, 80020) 01910404 WRITE(NUVI, 70030) A41K(1), A41K(2), A41K(3), A41K(4), A41K(5), 01920404 1 A41K(6), A1VK, A2VK, A3VK, A4VK, A5VK, A6VK 01930404 70030 FORMAT(26X,A1,A2,A3,A4,A5,A6/23X,4(A4),A4,A4) 01940404 IVINSP = IVINSP + 1 01950404 WRITE (NUVI, 70011) 01960404 WRITE (NUVI, 70032) 01970404 70032 FORMAT(26X,"AABABCABCD BCDE CDEF" / 01980404 1 26X,"Z YZ XYZWXYZWXYZWXYZ" ) 01990404 C***** 02000404 C***** A CONVERSION IS USED IN THE FORMAT STATEMENTS. 3.5.1102010404 C***** SOME FORMAT DESCRIPTORS ARE REPEATED. 02020404 C***** READ WITH A-EDIT DESCRIPTOR, A STRING, FOLLOWED BY ANOTHER 02030404 C***** FIELD TO SHOW THAT THE POINTER PICKS UP THE NEXT FIELD 02040404 C***** FOLLOWING THE COUNT OF THE LENGTH OF THE DECLARED VARIABLE. 02050404 C***** 02060404 C***** INPUT CARD 3 02070404 READ(IRVI, 02206) A1VK, A2VK, A3VK, A4VK, A5VK, A6VK 02080404 02206 FORMAT(A, 2A, 3(A)) 02090404 CT004* TEST 4 02100404 IVTNUM = 4 02110404 WRITE (NUVI, 80004) IVTNUM 02120404 WRITE (NUVI, 80020) 02130404 WRITE(NUVI, 70040) A1VK, A2VK, A3VK, A4VK, A5VK, A6VK 02140404 70040 FORMAT(26X,6A) 02150404 IVINSP = IVINSP + 1 02160404 WRITE (NUVI, 80022) 02170404 WRITE (NUVI, 70042) 02180404 70042 FORMAT(26X,"112123123412345123456" ) 02190404 C***** 02200404 C***** TEST THAT A SLASH ON INPUT CAUSES THE UNPROCESSED CHARACTERS 02210404 C***** TO BE SKIPPED. 13.5.402220404 C***** ALSO TEST THAT AN APOSTROPHE MAY BE USED INSTEAD OF AN 13.5.102230404 C***** H-EDIT DESCRIPTOR. 13.5.202240404 C***** 02250404 C***** INPUT CARD 4 02260404 READ(IRVI, 02208) A41K(2), A41K(1), A41K(4), A41K(3) 02270404 02208 FORMAT(4A4) 02280404 C***** INPUT CARDS 5-6 02290404 READ(IRVI, 02209) A41K(2), A41K(4), A41K(3) 02300404 02209 FORMAT(A4 / 2A4) 02310404 CT005* TEST 5 02320404 IVTNUM = 5 02330404 REMRKS = '2 IDENTICAL COMPUTED LINES ' 02340404 WRITE (NUVI, 80004) IVTNUM, REMRKS 02350404 REMRKS = 'EXPECTED ' 02360404 WRITE (NUVI, 80050) REMRKS 02370404 WRITE (NUVI, 80020) 02380404 WRITE(NUVI, 70050) A41K(2), A41K(1), A41K(4), A41K(3) 02390404 70050 FORMAT(26X,'----HHHH....NNNN'/26X,3(A4),A4) 02400404 IVINSP = IVINSP + 1 02410404 WRITE (NUVI, 70011) 02420404 WRITE (NUVI, 70052) 02430404 70052 FORMAT (26X,"----HHHH....NNNN" ) 02440404 C***** 02450404 CBB** ********************** BBCSUM0 **********************************02460404 C**** WRITE OUT TEST SUMMARY 02470404 C**** 02480404 IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 02490404 WRITE (I02, 90004) 02500404 WRITE (I02, 90014) 02510404 WRITE (I02, 90004) 02520404 WRITE (I02, 90020) IVPASS 02530404 WRITE (I02, 90022) IVFAIL 02540404 WRITE (I02, 90024) IVDELE 02550404 WRITE (I02, 90026) IVINSP 02560404 WRITE (I02, 90028) IVTOTN, IVTOTL 02570404 CBE** ********************** BBCSUM0 **********************************02580404 CBB** ********************** BBCFOOT0 **********************************02590404 C**** WRITE OUT REPORT FOOTINGS 02600404 C**** 02610404 WRITE (I02,90016) ZPROG, ZPROG 02620404 WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 02630404 WRITE (I02,90019) 02640404 CBE** ********************** BBCFOOT0 **********************************02650404 CBB** ********************** BBCFMT0A **********************************02660404 C**** FORMATS FOR TEST DETAIL LINES 02670404 C**** 02680404 80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 02690404 80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 02700404 80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 02710404 80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 02720404 80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 02730404 1I6,/," ",15X,"CORRECT= " ,I6) 02740404 80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02750404 1E12.5,/," ",16X,"CORRECT= " ,E12.5) 02760404 80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02770404 1A21,/," ",16X,"CORRECT= " ,A21) 02780404 80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 02790404 80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 02800404 80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 02810404 80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 02820404 80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 02830404 80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 02840404 80050 FORMAT (" ",48X,A31) 02850404 CBE** ********************** BBCFMT0A **********************************02860404 CBB** ********************** BBCFMT0B **********************************02870404 C**** FORMAT STATEMENTS FOR PAGE HEADERS 02880404 C**** 02890404 90002 FORMAT ("1") 02900404 90004 FORMAT (" ") 02910404 90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )02920404 90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 02930404 90008 FORMAT (" ",21X,A13,A17) 02940404 90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 02950404 90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 02960404 90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 02970404 1 7X,"REMARKS",24X) 02980404 90014 FORMAT (" ","----------------------------------------------" , 02990404 1 "---------------------------------" ) 03000404 90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 03010404 C**** 03020404 C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 03030404 C**** 03040404 90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 03050404 90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 03060404 1 A13) 03070404 90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 03080404 C**** 03090404 C**** FORMAT STATEMENTS FOR RUN SUMMARY 03100404 C**** 03110404 90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 03120404 90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 03130404 90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 03140404 90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 03150404 90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 03160404 CBE** ********************** BBCFMT0B **********************************03170404 C***** 03180404 C***** END OF TEST SEGMENT 022 03190404 STOP 03200404 END 03210404