C*********************************************************************** C***** FORTRAN 77 C***** FM901 AFMTF - (023) C***** C*********************************************************************** C***** GENERAL PURPOSE ANS REFS C***** TO TEST SIMPLE FORMAT AND FORMATTED DATA 12.9.5.2 C***** TRANSFER STATEMENTS IN EXTERNAL SEQUENTIAL I/O SO 13.1.1 C***** THAT THESE FEATURES MAY BE USED IN OTHER TEST 12.8.1 C***** PROGRAM SEGMENTS FOR CHARACTER DATA TYPES. 4.8 C***** TO TEST READ AND WRITE OF SUBSTRINGS. 5.7 C***** C***** RESTRICTIONS OBSERVED C***** * ALL FORMAT STATEMENTS ARE LABELED 12.8.2 C***** * H AND X DESCRIPTORS ARE NEVER REPEATED 13.1.1 C***** * FIELD WIDTH IS NEVER ZERO 13.5.11 C***** * IF AN I/O LIST SPECIFIES AT LEAST ONE LIST ITEM 13.3 C***** AT LEAST ONE REPEATABLE EDIT DESCRIPTOR MUST EXIST C***** IN THE FORMAT SPECIFICATION. C***** * ITEMS IN I/O LIST CORRESPOND TO FORMAT DESCRIPTORS 13.3 C***** CBB** ********************** BBCCOMNT ********************************** C**** C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM C**** VERSION 2.0 C**** C**** C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO C**** GENERAL SERVICES ADMINISTRATION C**** FEDERAL SOFTWARE TESTING CENTER C**** 5203 LEESBURG PIKE, SUITE 1100 C**** FALLS CHURCH, VA. 22041 C**** C**** (703) 756-6153 C**** CBE** ********************** BBCCOMNT ********************************** C***** C INPUT DATA TO THIS SEG. CONSISTS OF 5 DATA CARD IMAGES IN COLS. 1 - 52 COL. 1-------------------------------------------------52 CARD 1 XYZ123:45$'),.JKLABCDEF67890MNOPQRSTUVW =+-*/(GHI CARD 2 ONEFIVENINEELEVENSEVENTHREE CARD 3 SQUARE THE WORLD IN 40 NIGHTS CARD 4 DAYS 80AROUND CARD 5 TO XXXXX NOT TO XXXX- THAT IS THE QUESTIONXXBE ORBE C***** C***** S P E C I F I C A T I O N S SEGMENT 023 C***** CHARACTER*13 A13VK CHARACTER*27 A27VK CHARACTER*29 A29VK CHARACTER*36 A36VK CHARACTER*43 B43VK C***** CBB** ********************** BBCINITA ********************************** C**** SPECIFICATION STATEMENTS C**** CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 CBE** ********************** BBCINITA ********************************** CBB** ********************** BBCINITB ********************************** C**** INITIALIZE SECTION DATA ZVERS, ZVERSD, ZDATE 1 /'VERSION 2.0 ', '82/08/02*18.33.46', '*NO DATE*TIME'/ DATA ZCOMPL, ZNAME, ZTAPE 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ DATA ZPROJ, ZTAPED, ZPROG 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ DATA REMRKS /' '/ C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED C**** FOR IDENTIFYING THE TEST ENVIRONMENT C**** CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' CZ03 ZPROG = 'PROGRAM NAME' ZDATE = ' DEC. 1983 ' ZCOMPL = ' ICL VME FORTRAN77 ' ZPROJ = ' LANG. CENTRE' ZNAME = 'ICL ' ZTAPE = 'M999 ' ZTAPED = '831005 ' C IVPASS = 0 IVFAIL = 0 IVDELE = 0 IVINSP = 0 IVTOTL = 0 IVTOTN = 0 ICZERO = 0 C C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. I01 = 05 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. I02 = 06 C CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. C CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. C CBE** ********************** BBCINITB ********************************** IRVI = I01 NUVI = I02 IVTOTL = 4 ZPROG = 'FM901' CBB** ********************** BBCHED0A ********************************** C**** C**** WRITE REPORT TITLE C**** WRITE (I02, 90002) WRITE (I02, 90006) WRITE (I02, 90007) WRITE (I02, 90008) ZVERS, ZVERSD WRITE (I02, 90009) ZPROG, ZPROG WRITE (I02, 90010) ZDATE, ZCOMPL CBE** ********************** BBCHED0A ********************************** C***** C***** HEADER FOR SEGMENT 23 WRITE (NUVI,02300) 02300 FORMAT(1H , /1X,38H AFMTF - (023) FORMATTED DATA TRANSFER// 1 1X,35H USING A-CONVERSION WITH SUBSTRINGS//1X, 2 31H REFS - 12.9.5.2 13.3 13.5.11) CBB** ********************** BBCHED0B ********************************** C**** WRITE DETAIL REPORT HEADERS C**** WRITE (I02,90004) WRITE (I02,90004) WRITE (I02,90013) WRITE (I02,90014) WRITE (I02,90015) IVTOTL CBE** ********************** BBCHED0B ********************************** C***** C***** TEST THAT DATA MAY BE READ IN A SERIES OF SUBSTRINGS, 5.7 C***** NOT NECESSARILY IN THE ORDER OF POSITION IN THE STRING, 12.8.2 C***** AND CAN BE WRITTEN AS A CHARACTER STRING. 13.5.11 C***** SHOW ALSO THAT THE FULL FORTRAN CHARACTER SET CAN BE READ 3.1 C***** (INCLUDES $ AND :) C***** C***** INPUT CARD 1 READ(IRVI, 02301) A36VK(24:29), A13VK(13:13), A36VK(30:31), 1 A13VK(11:12), A13VK(8:10), A36VK(10:12), A36VK(:6), 2 A36VK(32:), A36VK(13:23), A13VK(1:7), A36VK(7:9) 02301 FORMAT(A6, A1, 2A2, A3, A3, A6, A5, A11, A7, A3) CT001* TEST 1 IVTNUM = 1 REMRKS = '2 SETS OF 2 COMPUTED LINES ' WRITE (NUVI, 80004) IVTNUM, REMRKS REMRKS = 'EXPECTED ' WRITE (NUVI, 80050) REMRKS WRITE (NUVI, 80020) WRITE (NUVI, 70010) A36VK(1:6), A36VK(7:9), A36VK(10:12), 1 A36VK(13:23), A36VK(24:29), A36VK(30:31), A36VK(32:36), 2 A36VK, A13VK(:7), A13VK(8:10), A13VK(11:12), A13VK(13:), 3 A13VK 70010 FORMAT (26X,A6,2(A3),A11,A6,A2,A5/26X,A36//26X,A7,A3,A2,A1/ 1 26X,A13) IVINSP = IVINSP + 1 WRITE (NUVI, 70011) 70011 FORMAT(1H ,16X,10HCORRECT: ,22X,32HCORRESPONDING LINE(S) MUST M 1ATCH) WRITE (NUVI, 70012) 70012 FORMAT(26X,36HABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890/ 1 26X,13H =+-*/(),.$':) C***** C***** TEST THAT A CHARACTER VARIABLE CAN BE OUTPUT AS SUBSTRINGS. C***** 13.5.11 C***** INPUT CARD 2 READ(IRVI, 02303) A27VK 02303 FORMAT(A27) CT002* TEST 2 IVTNUM = 2 WRITE (NUVI, 80004) IVTNUM WRITE (NUVI, 80020) WRITE(NUVI, 70020) A27VK(1:3), A27VK(23:27), A27VK(4:7), 1 A27VK(18:22), A27VK(8:11), A27VK(12:17) 70020 FORMAT(26X,A3,A6,A5,A6,A5,A7) IVINSP = IVINSP + 1 WRITE (NUVI, 80022) WRITE (NUVI, 70022) 70022 FORMAT(26X,32HONE THREE FIVE SEVEN NINE ELEVEN) C***** C***** TEST THAT A SUBSTRING CAN BE READ IN, AND PARTIALLY REPLACE C***** A PREVIOUSLY READ CHARACTER STRING. 13.5.11 C***** THIS SHOWS THAT THE LENGTH IS DERIVED FROM THE SUBSTRING, C***** AND NOT THE CHARACTER VARIABLE LENGTH. C***** C***** INPUT CARDS 3-4 READ(IRVI, 02305) A29VK, A29VK(24:29), A29VK(21:22), A29VK(1:6) 02305 FORMAT(A29/A,2A) CT003* TEST 3 IVTNUM = 3 WRITE (NUVI, 80004) IVTNUM WRITE (NUVI, 80020) WRITE(NUVI, 70030) A29VK(1:3), A29VK(4:21), A29VK(22:29) 70030 FORMAT (26X,3(A)) IVINSP = IVINSP + 1 WRITE (NUVI, 80022) WRITE (NUVI, 70032) 70032 FORMAT(25X,30H AROUND THE WORLD IN 80 DAYS ) C***** C***** SPECIFIED FIELD WIDTH IN A A-EDIT DESCRIPTOR C***** IS DIFFERENT FROM SUBSTRING LENGTH C***** C***** INPUT CARD 5 READ(IRVI, 02307) B43VK, B43VK(4:8), B43VK(17:20) 02307 FORMAT(A43, A7, A2) CT004* TEST 4 IVTNUM = 4 WRITE (NUVI, 80004) IVTNUM WRITE (NUVI, 80020) WRITE (NUVI, 70040) B43VK(:) 70040 FORMAT (26X,A20) IVINSP = IVINSP + 1 WRITE (NUVI, 80022) WRITE (NUVI, 70042) 70042 FORMAT(26X,20HTO BE OR NOT TO BE ) C***** CBB** ********************** BBCSUM0 ********************************** C**** WRITE OUT TEST SUMMARY C**** IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP WRITE (I02, 90004) WRITE (I02, 90014) WRITE (I02, 90004) WRITE (I02, 90020) IVPASS WRITE (I02, 90022) IVFAIL WRITE (I02, 90024) IVDELE WRITE (I02, 90026) IVINSP WRITE (I02, 90028) IVTOTN, IVTOTL CBE** ********************** BBCSUM0 ********************************** CBB** ********************** BBCFOOT0 ********************************** C**** WRITE OUT REPORT FOOTINGS C**** WRITE (I02,90016) ZPROG, ZPROG WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED WRITE (I02,90019) CBE** ********************** BBCFOOT0 ********************************** CBB** ********************** BBCFMT0A ********************************** C**** FORMATS FOR TEST DETAIL LINES C**** 80000 FORMAT (1H ,2X,I3,4X,7HDELETED,32X,A31) 80002 FORMAT (1H ,2X,I3,4X,7H PASS ,32X,A31) 80004 FORMAT (1H ,2X,I3,4X,7HINSPECT,32X,A31) 80008 FORMAT (1H ,2X,I3,4X,7H FAIL ,32X,A31) 80010 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,15X,10HCOMPUTED= , 1I6,/,1H ,15X,10HCORRECT= ,I6) 80012 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 1E12.5,/,1H ,16X,10HCORRECT= ,E12.5) 80018 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 1A21,/,1H ,16X,10HCORRECT= ,A21) 80020 FORMAT (1H ,16X,10HCOMPUTED= ,A21,1X,A31) 80022 FORMAT (1H ,16X,10HCORRECT= ,A21,1X,A31) 80024 FORMAT (1H ,16X,10HCOMPUTED= ,I6,16X,A31) 80026 FORMAT (1H ,16X,10HCORRECT= ,I6,16X,A31) 80028 FORMAT (1H ,16X,10HCOMPUTED= ,E12.5,10X,A31) 80030 FORMAT (1H ,16X,10HCORRECT= ,E12.5,10X,A31) 80050 FORMAT (1H ,48X,A31) CBE** ********************** BBCFMT0A ********************************** CBB** ********************** BBCFMAT1 ********************************** C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE C**** 80031 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 1D17.10,/,1H ,16X,10HCORRECT= ,D17.10) 80033 FORMAT (1H ,16X,10HCOMPUTED= ,D17.10,10X,A31) 80035 FORMAT (1H ,16X,10HCORRECT= ,D17.10,10X,A31) 80037 FORMAT (1H ,16X,10HCOMPUTED= ,1H(,E12.5,2H, ,E12.5,1H),6X,A31) 80039 FORMAT (1H ,16X,10HCORRECT= ,1H(,E12.5,2H, ,E12.5,1H),6X,A31) 80041 FORMAT (1H ,16X,10HCOMPUTED= ,1H(,F12.5,2H, ,F12.5,1H),6X,A31) 80043 FORMAT (1H ,16X,10HCORRECT= ,1H(,F12.5,2H, ,F12.5,1H),6X,A31) 80045 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 11H(,F12.5,2H, ,F12.5,1H)/,1H ,16X,10HCORRECT= , 21H(,F12.5,2H, ,F12.5,1H)) CBE** ********************** BBCFMAT1 ********************************** CBB** ********************** BBCFMT0B ********************************** C**** FORMAT STATEMENTS FOR PAGE HEADERS C**** 90002 FORMAT (1H1) 90004 FORMAT (1H ) 90006 FORMAT (1H ,20X,31HFEDERAL SOFTWARE TESTING CENTER) 90007 FORMAT (1H ,19X,34HFORTRAN COMPILER VALIDATION SYSTEM) 90008 FORMAT (1H ,21X,A13,A17) 90009 FORMAT (1H ,/,2H *,A5,6HBEGIN*,12X,15HTEST RESULTS - ,A5,/) 90010 FORMAT (1H ,8X,16HTEST DATE*TIME= ,A17,15H - COMPILER= ,A20) 90013 FORMAT (1H ,8H TEST ,10HPASS/FAIL ,6X,17HDISPLAYED RESULTS, 1 7X,7HREMARKS,24X) 90014 FORMAT (1H ,46H----------------------------------------------, 1 33H---------------------------------) 90015 FORMAT (1H ,48X,17HTHIS PROGRAM HAS ,I3,6H TESTS,/) C**** C**** FORMAT STATEMENTS FOR REPORT FOOTINGS C**** 90016 FORMAT (1H ,/,2H *,A5,4HEND*,14X,14HEND OF TEST - ,A5,/) 90018 FORMAT (1H ,A13,13X,A20,7H * ,A10,1H/, 1 A13) 90019 FORMAT (1H ,26HFOR OFFICIAL USE ONLY ,35X,15HCOPYRIGHT 1982) C**** C**** FORMAT STATEMENTS FOR RUN SUMMARY C**** 90020 FORMAT (1H ,21X,I5,13H TESTS PASSED) 90022 FORMAT (1H ,21X,I5,13H TESTS FAILED) 90024 FORMAT (1H ,21X,I5,14H TESTS DELETED) 90026 FORMAT (1H ,21X,I5,25H TESTS REQUIRE INSPECTION) 90028 FORMAT (1H ,21X,I5,4H OF ,I3,15H TESTS EXECUTED) CBE** ********************** BBCFMT0B ********************************** C***** C***** END OF TEST SEGMENT 023 STOP END