| 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 |