| PROGRAM FM901 |
| |
| C***********************************************************************00010901 |
| C***** FORTRAN 77 00020901 |
| C***** FM901 AFMTF - (023) 00030901 |
| C***** 00040901 |
| C***********************************************************************00050901 |
| C***** GENERAL PURPOSE ANS REFS00060901 |
| C***** TO TEST SIMPLE FORMAT AND FORMATTED DATA 12.9.5.200070901 |
| C***** TRANSFER STATEMENTS IN EXTERNAL SEQUENTIAL I/O SO 13.1.1 00080901 |
| C***** THAT THESE FEATURES MAY BE USED IN OTHER TEST 12.8.1 00090901 |
| C***** PROGRAM SEGMENTS FOR CHARACTER DATA TYPES. 4.8 00100901 |
| C***** TO TEST READ AND WRITE OF SUBSTRINGS. 5.7 00110901 |
| C***** 00120901 |
| C***** RESTRICTIONS OBSERVED 00130901 |
| C***** * ALL FORMAT STATEMENTS ARE LABELED 12.8.2 00140901 |
| C***** * H AND X DESCRIPTORS ARE NEVER REPEATED 13.1.1 00150901 |
| C***** * FIELD WIDTH IS NEVER ZERO 13.5.11 00160901 |
| C***** * IF AN I/O LIST SPECIFIES AT LEAST ONE LIST ITEM 13.3 00170901 |
| C***** AT LEAST ONE REPEATABLE EDIT DESCRIPTOR MUST EXIST 00180901 |
| C***** IN THE FORMAT SPECIFICATION. 00190901 |
| C***** * ITEMS IN I/O LIST CORRESPOND TO FORMAT DESCRIPTORS 13.3 00200901 |
| C***** 00210901 |
| CBB** ********************** BBCCOMNT **********************************00220901 |
| C**** 00230901 |
| C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00240901 |
| C**** VERSION 2.1 00250901 |
| C**** 00260901 |
| C**** 00270901 |
| C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00280901 |
| C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00290901 |
| C**** SOFTWARE STANDARDS VALIDATION GROUP 00300901 |
| C**** BUILDING 225 RM A266 00310901 |
| C**** GAITHERSBURG, MD 20899 00320901 |
| C**** 00330901 |
| C**** 00340901 |
| C**** 00350901 |
| CBE** ********************** BBCCOMNT **********************************00360901 |
| C***** 00370901 |
| C INPUT DATA TO THIS SEG. CONSISTS OF 5 DATA CARD IMAGES IN COLS. 1 - 5200380901 |
| COL. 1-------------------------------------------------52 00390901 |
| CARD 1 XYZ123:45$'),.JKLABCDEF67890MNOPQRSTUVW =+-*/(GHI 00400901 |
| CARD 2 ONEFIVENINEELEVENSEVENTHREE 00410901 |
| CARD 3 SQUARE THE WORLD IN 40 NIGHTS 00420901 |
| CARD 4 DAYS 80AROUND 00430901 |
| CARD 5 TO XXXXX NOT TO XXXX- THAT IS THE QUESTIONXXBE ORBE 00440901 |
| C***** 00450901 |
| C***** S P E C I F I C A T I O N S SEGMENT 023 00460901 |
| C***** 00470901 |
| CHARACTER*13 A13VK 00480901 |
| CHARACTER*27 A27VK 00490901 |
| CHARACTER*29 A29VK 00500901 |
| CHARACTER*36 A36VK 00510901 |
| CHARACTER*43 B43VK 00520901 |
| C***** 00530901 |
| CBB** ********************** BBCINITA **********************************00540901 |
| C**** SPECIFICATION STATEMENTS 00550901 |
| C**** 00560901 |
| CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00570901 |
| 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00580901 |
| CBE** ********************** BBCINITA **********************************00590901 |
| CBB** ********************** BBCINITB **********************************00600901 |
| C**** INITIALIZE SECTION 00610901 |
| DATA ZVERS, ZVERSD, ZDATE 00620901 |
| 1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00630901 |
| DATA ZCOMPL, ZNAME, ZTAPE 00640901 |
| 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00650901 |
| DATA ZPROJ, ZTAPED, ZPROG 00660901 |
| 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00670901 |
| DATA REMRKS /' '/ 00680901 |
| C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00690901 |
| C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00700901 |
| C**** 00710901 |
| CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00720901 |
| CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00730901 |
| CZ03 ZPROG = 'PROGRAM NAME' 00740901 |
| CZ04 ZDATE = 'DATE OF TEST' 00750901 |
| CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00760901 |
| CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00770901 |
| CZ07 ZNAME = 'NAME OF USER' 00780901 |
| CZ08 ZTAPE = 'TAPE OWNER/ID' 00790901 |
| CZ09 ZTAPED = 'DATE TAPE COPIED' 00800901 |
| C 00810901 |
| IVPASS = 0 00820901 |
| IVFAIL = 0 00830901 |
| IVDELE = 0 00840901 |
| IVINSP = 0 00850901 |
| IVTOTL = 0 00860901 |
| IVTOTN = 0 00870901 |
| ICZERO = 0 00880901 |
| C 00890901 |
| C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00900901 |
| I01 = 05 00910901 |
| C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00920901 |
| I02 = 06 00930901 |
| C 00940901 |
| CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00950901 |
| C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00960901 |
| CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00970901 |
| C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00980901 |
| C 00990901 |
| CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 01000901 |
| C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 01010901 |
| CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 01020901 |
| C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 01030901 |
| C 01040901 |
| CBE** ********************** BBCINITB **********************************01050901 |
| IRVI = I01 01060901 |
| NUVI = I02 01070901 |
| IVTOTL = 4 01080901 |
| ZPROG = 'FM901' 01090901 |
| CBB** ********************** BBCHED0A **********************************01100901 |
| C**** 01110901 |
| C**** WRITE REPORT TITLE 01120901 |
| C**** 01130901 |
| WRITE (I02, 90002) 01140901 |
| WRITE (I02, 90006) 01150901 |
| WRITE (I02, 90007) 01160901 |
| WRITE (I02, 90008) ZVERS, ZVERSD 01170901 |
| WRITE (I02, 90009) ZPROG, ZPROG 01180901 |
| WRITE (I02, 90010) ZDATE, ZCOMPL 01190901 |
| CBE** ********************** BBCHED0A **********************************01200901 |
| C***** 01210901 |
| C***** HEADER FOR SEGMENT 23 01220901 |
| WRITE (NUVI,02300) 01230901 |
| 02300 FORMAT(" ", /1X," AFMTF - (023) FORMATTED DATA TRANSFER" // 01240901 |
| 1 1X," USING A-CONVERSION WITH SUBSTRINGS" //1X, 01250901 |
| 2 " REFS - 12.9.5.2 13.3 13.5.11" ) 01260901 |
| CBB** ********************** BBCHED0B **********************************01270901 |
| C**** WRITE DETAIL REPORT HEADERS 01280901 |
| C**** 01290901 |
| WRITE (I02,90004) 01300901 |
| WRITE (I02,90004) 01310901 |
| WRITE (I02,90013) 01320901 |
| WRITE (I02,90014) 01330901 |
| WRITE (I02,90015) IVTOTL 01340901 |
| CBE** ********************** BBCHED0B **********************************01350901 |
| C***** 01360901 |
| C***** TEST THAT DATA MAY BE READ IN A SERIES OF SUBSTRINGS, 5.701370901 |
| C***** NOT NECESSARILY IN THE ORDER OF POSITION IN THE STRING, 12.8.201380901 |
| C***** AND CAN BE WRITTEN AS A CHARACTER STRING. 13.5.1101390901 |
| C***** SHOW ALSO THAT THE FULL FORTRAN CHARACTER SET CAN BE READ 3.101400901 |
| C***** (INCLUDES $ AND :) 01410901 |
| C***** 01420901 |
| C***** INPUT CARD 1 01430901 |
| READ(IRVI, 02301) A36VK(24:29), A13VK(13:13), A36VK(30:31), 01440901 |
| 1 A13VK(11:12), A13VK(8:10), A36VK(10:12), A36VK(:6), 01450901 |
| 2 A36VK(32:), A36VK(13:23), A13VK(1:7), A36VK(7:9) 01460901 |
| 02301 FORMAT(A6, A1, 2A2, A3, A3, A6, A5, A11, A7, A3) 01470901 |
| CT001* TEST 1 01480901 |
| IVTNUM = 1 01490901 |
| REMRKS = '2 SETS OF 2 COMPUTED LINES ' 01500901 |
| WRITE (NUVI, 80004) IVTNUM, REMRKS 01510901 |
| REMRKS = 'EXPECTED ' 01520901 |
| WRITE (NUVI, 80050) REMRKS 01530901 |
| WRITE (NUVI, 80020) 01540901 |
| WRITE (NUVI, 70010) A36VK(1:6), A36VK(7:9), A36VK(10:12), 01550901 |
| 1 A36VK(13:23), A36VK(24:29), A36VK(30:31), A36VK(32:36), 01560901 |
| 2 A36VK, A13VK(:7), A13VK(8:10), A13VK(11:12), A13VK(13:), 01570901 |
| 3 A13VK 01580901 |
| 70010 FORMAT (26X,A6,2(A3),A11,A6,A2,A5/26X,A36//26X,A7,A3,A2,A1/ 01590901 |
| 1 26X,A13) 01600901 |
| IVINSP = IVINSP + 1 01610901 |
| WRITE (NUVI, 70011) 01620901 |
| 70011 FORMAT(" ",16X,"CORRECT: " ,22X, "CORRESPONDING LINE(S) MUST M01630901 |
| 1ATCH") 01640901 |
| WRITE (NUVI, 70012) 01650901 |
| 70012 FORMAT(26X,"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" / 01660901 |
| 1 26X," =+-*/(),.$':" ) 01670901 |
| C***** 01680901 |
| C***** TEST THAT A CHARACTER VARIABLE CAN BE OUTPUT AS SUBSTRINGS. 01690901 |
| C***** 13.5.1101700901 |
| C***** INPUT CARD 2 01710901 |
| READ(IRVI, 02303) A27VK 01720901 |
| 02303 FORMAT(A27) 01730901 |
| CT002* TEST 2 01740901 |
| IVTNUM = 2 01750901 |
| WRITE (NUVI, 80004) IVTNUM 01760901 |
| WRITE (NUVI, 80020) 01770901 |
| WRITE(NUVI, 70020) A27VK(1:3), A27VK(23:27), A27VK(4:7), 01780901 |
| 1 A27VK(18:22), A27VK(8:11), A27VK(12:17) 01790901 |
| 70020 FORMAT(26X,A3,A6,A5,A6,A5,A7) 01800901 |
| IVINSP = IVINSP + 1 01810901 |
| WRITE (NUVI, 80022) 01820901 |
| WRITE (NUVI, 70022) 01830901 |
| 70022 FORMAT(26X,"ONE THREE FIVE SEVEN NINE ELEVEN" ) 01840901 |
| C***** 01850901 |
| C***** TEST THAT A SUBSTRING CAN BE READ IN, AND PARTIALLY REPLACE 01860901 |
| C***** A PREVIOUSLY READ CHARACTER STRING. 13.5.1101870901 |
| C***** THIS SHOWS THAT THE LENGTH IS DERIVED FROM THE SUBSTRING, 01880901 |
| C***** AND NOT THE CHARACTER VARIABLE LENGTH. 01890901 |
| C***** 01900901 |
| C***** INPUT CARDS 3-4 01910901 |
| READ(IRVI, 02305) A29VK, A29VK(24:29), A29VK(21:22), A29VK(1:6)01920901 |
| 02305 FORMAT(A29/A,2A) 01930901 |
| CT003* TEST 3 01940901 |
| IVTNUM = 3 01950901 |
| WRITE (NUVI, 80004) IVTNUM 01960901 |
| WRITE (NUVI, 80020) 01970901 |
| WRITE(NUVI, 70030) A29VK(1:3), A29VK(4:21), A29VK(22:29) 01980901 |
| 70030 FORMAT (26X,3(A)) 01990901 |
| IVINSP = IVINSP + 1 02000901 |
| WRITE (NUVI, 80022) 02010901 |
| WRITE (NUVI, 70032) 02020901 |
| 70032 FORMAT(25X," AROUND THE WORLD IN 80 DAYS " ) 02030901 |
| C***** 02040901 |
| C***** SPECIFIED FIELD WIDTH IN A A-EDIT DESCRIPTOR 02050901 |
| C***** IS DIFFERENT FROM SUBSTRING LENGTH 02060901 |
| C***** 02070901 |
| C***** INPUT CARD 5 02080901 |
| READ(IRVI, 02307) B43VK, B43VK(4:8), B43VK(17:20) 02090901 |
| 02307 FORMAT(A43, A7, A2) 02100901 |
| CT004* TEST 4 02110901 |
| IVTNUM = 4 02120901 |
| WRITE (NUVI, 80004) IVTNUM 02130901 |
| WRITE (NUVI, 80020) 02140901 |
| WRITE (NUVI, 70040) B43VK(:) 02150901 |
| 70040 FORMAT (26X,A20) 02160901 |
| IVINSP = IVINSP + 1 02170901 |
| WRITE (NUVI, 80022) 02180901 |
| WRITE (NUVI, 70042) 02190901 |
| 70042 FORMAT(26X,"TO BE OR NOT TO BE " ) 02200901 |
| C***** 02210901 |
| CBB** ********************** BBCSUM0 **********************************02220901 |
| C**** WRITE OUT TEST SUMMARY 02230901 |
| C**** 02240901 |
| IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 02250901 |
| WRITE (I02, 90004) 02260901 |
| WRITE (I02, 90014) 02270901 |
| WRITE (I02, 90004) 02280901 |
| WRITE (I02, 90020) IVPASS 02290901 |
| WRITE (I02, 90022) IVFAIL 02300901 |
| WRITE (I02, 90024) IVDELE 02310901 |
| WRITE (I02, 90026) IVINSP 02320901 |
| WRITE (I02, 90028) IVTOTN, IVTOTL 02330901 |
| CBE** ********************** BBCSUM0 **********************************02340901 |
| CBB** ********************** BBCFOOT0 **********************************02350901 |
| C**** WRITE OUT REPORT FOOTINGS 02360901 |
| C**** 02370901 |
| WRITE (I02,90016) ZPROG, ZPROG 02380901 |
| WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 02390901 |
| WRITE (I02,90019) 02400901 |
| CBE** ********************** BBCFOOT0 **********************************02410901 |
| CBB** ********************** BBCFMT0A **********************************02420901 |
| C**** FORMATS FOR TEST DETAIL LINES 02430901 |
| C**** 02440901 |
| 80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 02450901 |
| 80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 02460901 |
| 80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 02470901 |
| 80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 02480901 |
| 80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 02490901 |
| 1I6,/," ",15X,"CORRECT= " ,I6) 02500901 |
| 80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02510901 |
| 1E12.5,/," ",16X,"CORRECT= " ,E12.5) 02520901 |
| 80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02530901 |
| 1A21,/," ",16X,"CORRECT= " ,A21) 02540901 |
| 80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 02550901 |
| 80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 02560901 |
| 80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 02570901 |
| 80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 02580901 |
| 80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 02590901 |
| 80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 02600901 |
| 80050 FORMAT (" ",48X,A31) 02610901 |
| CBE** ********************** BBCFMT0A **********************************02620901 |
| CBB** ********************** BBCFMAT1 **********************************02630901 |
| C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 02640901 |
| C**** 02650901 |
| 80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02660901 |
| 1D17.10,/," ",16X,"CORRECT= " ,D17.10) 02670901 |
| 80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 02680901 |
| 80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 02690901 |
| 80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 02700901 |
| 80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 02710901 |
| 80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 02720901 |
| 80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 02730901 |
| 80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02740901 |
| 1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 02750901 |
| 2"(",F12.5,", ",F12.5,")") 02760901 |
| CBE** ********************** BBCFMAT1 **********************************02770901 |
| CBB** ********************** BBCFMT0B **********************************02780901 |
| C**** FORMAT STATEMENTS FOR PAGE HEADERS 02790901 |
| C**** 02800901 |
| 90002 FORMAT ("1") 02810901 |
| 90004 FORMAT (" ") 02820901 |
| 90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )02830901 |
| 90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 02840901 |
| 90008 FORMAT (" ",21X,A13,A17) 02850901 |
| 90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 02860901 |
| 90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 02870901 |
| 90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 02880901 |
| 1 7X,"REMARKS",24X) 02890901 |
| 90014 FORMAT (" ","----------------------------------------------" , 02900901 |
| 1 "---------------------------------" ) 02910901 |
| 90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 02920901 |
| C**** 02930901 |
| C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 02940901 |
| C**** 02950901 |
| 90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 02960901 |
| 90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 02970901 |
| 1 A13) 02980901 |
| 90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 02990901 |
| C**** 03000901 |
| C**** FORMAT STATEMENTS FOR RUN SUMMARY 03010901 |
| C**** 03020901 |
| 90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 03030901 |
| 90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 03040901 |
| 90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 03050901 |
| 90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 03060901 |
| 90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 03070901 |
| CBE** ********************** BBCFMT0B **********************************03080901 |
| C***** 03090901 |
| C***** END OF TEST SEGMENT 023 03100901 |
| STOP 03110901 |
| END 03120901 |