blob: 66f6adf78fa2bc8316f994995fd718ce2186d5ee [file] [log] [blame]
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