PROGRAM FM905 C***********************************************************************00010905 C***** FORTRAN 77 00020905 C***** FM905 00030905 C***** LSTDO1 - (371) 00040905 C***** 00050905 C***********************************************************************00060905 C***** GENERAL PURPOSE ANS REF 00070905 C***** TEST LIST DIRECTED OUTPUT ON 13.6 00080905 C***** INTEGER, REAL, LOGICAL, AND CHARACTER DATA TYPES 12.4 00090905 C***** 00100905 CBB** ********************** BBCCOMNT **********************************00110905 C**** 00120905 C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00130905 C**** VERSION 2.1 00140905 C**** 00150905 C**** 00160905 C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00170905 C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00180905 C**** SOFTWARE STANDARDS VALIDATION GROUP 00190905 C**** BUILDING 225 RM A266 00200905 C**** GAITHERSBURG, MD 20899 00210905 C**** 00220905 C**** 00230905 C**** 00240905 CBE** ********************** BBCCOMNT **********************************00250905 C***** 00260905 C***** S P E C I F I C A T I O N S SEGMENT 371 00270905 LOGICAL B1B(3), AVB 00280905 CHARACTER A5VK*5, A9VK*9, A33VK*33, A82VK*82 00290905 CHARACTER A51K(4)*5 00300905 C***** 00310905 CBB** ********************** BBCINITA **********************************00320905 C**** SPECIFICATION STATEMENTS 00330905 C**** 00340905 CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00350905 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00360905 CBE** ********************** BBCINITA **********************************00370905 CBB** ********************** BBCINITB **********************************00380905 C**** INITIALIZE SECTION 00390905 DATA ZVERS, ZVERSD, ZDATE 00400905 1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00410905 DATA ZCOMPL, ZNAME, ZTAPE 00420905 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00430905 DATA ZPROJ, ZTAPED, ZPROG 00440905 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00450905 DATA REMRKS /' '/ 00460905 C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00470905 C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00480905 C**** 00490905 CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00500905 CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00510905 CZ03 ZPROG = 'PROGRAM NAME' 00520905 CZ04 ZDATE = 'DATE OF TEST' 00530905 CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00540905 CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00550905 CZ07 ZNAME = 'NAME OF USER' 00560905 CZ08 ZTAPE = 'TAPE OWNER/ID' 00570905 CZ09 ZTAPED = 'DATE TAPE COPIED' 00580905 C 00590905 IVPASS = 0 00600905 IVFAIL = 0 00610905 IVDELE = 0 00620905 IVINSP = 0 00630905 IVTOTL = 0 00640905 IVTOTN = 0 00650905 ICZERO = 0 00660905 C 00670905 C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00680905 I01 = 05 00690905 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00700905 I02 = 06 00710905 C 00720905 CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00730905 C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00740905 CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00750905 C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00760905 C 00770905 CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00780905 C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00790905 CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00800905 C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00810905 C 00820905 CBE** ********************** BBCINITB **********************************00830905 NUVI = I02 00840905 IVTOTL = 10 00850905 ZPROG = 'FM905' 00860905 CBB** ********************** BBCHED0A **********************************00870905 C**** 00880905 C**** WRITE REPORT TITLE 00890905 C**** 00900905 WRITE (I02, 90002) 00910905 WRITE (I02, 90006) 00920905 WRITE (I02, 90007) 00930905 WRITE (I02, 90008) ZVERS, ZVERSD 00940905 WRITE (I02, 90009) ZPROG, ZPROG 00950905 WRITE (I02, 90010) ZDATE, ZCOMPL 00960905 CBE** ********************** BBCHED0A **********************************00970905 C***** 00980905 C***** HEADING FOR SEGMENT 371 00990905 WRITE(NUVI,37100) 01000905 37100 FORMAT(" ", /" LSTDO1 - (371) " , 01010905 1 " LIST DIRECTED OUTPUT FOR SUBSET DATA TYPES" // 01020905 2 " ANS REF. - 13.6 12.4" ) 01030905 CBB** ********************** BBCHED0B **********************************01040905 C**** WRITE DETAIL REPORT HEADERS 01050905 C**** 01060905 WRITE (I02,90004) 01070905 WRITE (I02,90004) 01080905 WRITE (I02,90013) 01090905 WRITE (I02,90014) 01100905 WRITE (I02,90015) IVTOTL 01110905 CBE** ********************** BBCHED0B **********************************01120905 WRITE (NUVI, 70000) 01130905 70000 FORMAT (" ",48X,"THE CORRECT LINE OF EACH TEST " / 01140905 1 " ",48X,"IS HOLLERITH INFORMATION. " / 01150905 2 " ",48X,"COLUMN SPACING, LINE BREAKS, " / 01160905 3 " ",48X,"AND THE NUMBER OF DECIMAL " / 01170905 4 " ",48X,"PLACES FOR REAL NUMBERS ARE " / 01180905 5 " ",48X,"PROCESSOR DEPENDENT. " / 01190905 6 " ",48X,"EITHER E OR F FORMAT MAY BE " / 01200905 7 " ",48X,"USED FOR REAL NUMBERS. " /) 01210905 CT001* TEST 1 - INTEGER 01220905 IVTNUM = 1 01230905 WRITE (NUVI, 80004) IVTNUM 01240905 WRITE (NUVI, 80020) 01250905 IVI = 2 01260905 WRITE(NUVI, *) IVI 01270905 IVINSP = IVINSP + 1 01280905 WRITE (NUVI, 80022) 01290905 WRITE (NUVI, 70011) 01300905 70011 FORMAT (" ",6X,"2") 01310905 CT002* TEST 2 - SEVERAL INTEGERS 01320905 IVTNUM = 2 01330905 WRITE (NUVI, 80004) IVTNUM 01340905 WRITE (NUVI, 80020) 01350905 IVI = 1 01360905 JVI = 3 01370905 KVI = 5 01380905 LVI = 7 01390905 MVI = 9 01400905 WRITE(NUVI, *) IVI, JVI, KVI, LVI, MVI 01410905 IVINSP = IVINSP + 1 01420905 WRITE (NUVI, 80022) 01430905 WRITE (NUVI, 70021) 01440905 70021 FORMAT (" ",6X,"1 3 5 7 9" ) 01450905 CT003* TEST 3 - REAL 01460905 IVTNUM = 3 01470905 WRITE (NUVI, 80004) IVTNUM 01480905 WRITE (NUVI, 80020) 01490905 AVS = 2.5 01500905 WRITE(NUVI, *) AVS 01510905 IVINSP = IVINSP + 1 01520905 WRITE (NUVI, 80022) 01530905 WRITE (NUVI, 70031) 01540905 70031 FORMAT (" ",6X,"2.5") 01550905 CT004* TEST 4 - SEVERAL REALS 01560905 IVTNUM = 4 01570905 WRITE (NUVI, 80004) IVTNUM 01580905 WRITE (NUVI, 80020) 01590905 AVS = 0.25E-10 01600905 BVS = 0.25 01610905 CVS = 0.25E+3 01620905 DVS = 0.25E+10 01630905 WRITE(NUVI, *) AVS, BVS, CVS, DVS 01640905 IVINSP = IVINSP + 1 01650905 WRITE (NUVI, 80022) 01660905 WRITE (NUVI, 70041) 01670905 70041 FORMAT(" ",6X," 2.5E-11 0.25 250.0 2.5E+09" ) 01680905 CT005* TEST 5 - IMPLIED-DO TO PRINT ARRAY OF LOGICALS 01690905 IVTNUM = 5 01700905 WRITE (NUVI, 80004) IVTNUM 01710905 WRITE (NUVI, 80020) 01720905 B1B(1) = .TRUE. 01730905 B1B(2) = .FALSE. 01740905 B1B(3) = .TRUE. 01750905 WRITE(NUVI, *) (B1B(IVI), IVI = 1,3) 01760905 IVINSP = IVINSP + 1 01770905 WRITE (NUVI, 80022) 01780905 WRITE (NUVI, 70051) 01790905 70051 FORMAT(" ",6X,"T F T") 01800905 CT006* TEST 6 - LIST OF CHARACTER VALUES, USING ARRAY NAME 01810905 IVTNUM = 6 01820905 WRITE (NUVI, 80004) IVTNUM 01830905 WRITE (NUVI, 80020) 01840905 A51K(1) = 'ONE ' 01850905 A51K(2) = 'TWO ' 01860905 A51K(3) = 'THREE' 01870905 A51K(4) = 'FOUR ' 01880905 WRITE(NUVI, *) A51K 01890905 IVINSP = IVINSP + 1 01900905 WRITE (NUVI, 80022) 01910905 WRITE (NUVI, 70061) 01920905 70061 FORMAT(" ",6X,"ONE TWO THREEFOUR " ) 01930905 CT007* TEST 7 - MIXED LIST 01940905 IVTNUM = 7 01950905 WRITE (NUVI, 80004) IVTNUM 01960905 WRITE (NUVI, 80020) 01970905 IVI = -3 01980905 AVS = 15.25 01990905 AVB = .TRUE. 02000905 A5VK = 'HELLO' 02010905 WRITE(NUVI,*) IVI, AVS, A5VK, AVB 02020905 IVINSP = IVINSP + 1 02030905 WRITE (NUVI, 80022) 02040905 WRITE (NUVI, 70071) 02050905 70071 FORMAT(" ",6X,"-3 15.25 HELLO T" ) 02060905 CT008* TEST 8 - CHARACTER CONSTANT CONTAINING EMBEDDED ' 02070905 IVTNUM = 8 02080905 WRITE (NUVI, 80004) IVTNUM 02090905 WRITE (NUVI, 80020) 02100905 A9VK = '5 O''CLOCK' 02110905 WRITE(NUVI, *) A9VK 02120905 IVINSP = IVINSP + 1 02130905 WRITE (NUVI, 80022) 02140905 WRITE (NUVI, 70081) 02150905 70081 FORMAT(" ",6X,"5 O'CLOCK") 02160905 CT009* TEST 9 - CHARACTER CONSTANT SPILLING OVER RECORD BOUNDARY 02170905 IVTNUM = 9 02180905 WRITE (NUVI, 80004) IVTNUM 02190905 WRITE (NUVI, 80020) 02200905 A5VK = 'SHORT' 02210905 A33VK = 'THIS IS A LONGER CHARACTER STRING' 02220905 A82VK = '123456789012345678901234567890123456789012345678901234502230905 167890123456789012' 02240905 WRITE(NUVI, *) A5VK, A33VK, A82VK 02250905 IVINSP = IVINSP + 1 02260905 WRITE (NUVI, 80022) 02270905 WRITE (NUVI, 70091) 02280905 70091 FORMAT(" ", "SHORT THIS IS A LONGER CHARACTER STRING" , 02290905 1 " 123456789012345678901234567890123456789" / 02300905 2 " ","012345678901234567890123456789012" ) 02310905 CT010* TEST 10 - SEVERAL IDENTICAL VALUES 02320905 IVTNUM = 10 02330905 WRITE (NUVI, 80004) IVTNUM 02340905 WRITE (NUVI, 80020) 02350905 IVI = 5 02360905 JVI = 5 02370905 KVI = 5 02380905 LVI = 5 02390905 MVI = 5 02400905 WRITE(NUVI, *) IVI, JVI, KVI, LVI, MVI 02410905 IVINSP = IVINSP + 1 02420905 WRITE (NUVI, 80022) 02430905 WRITE (NUVI, 70101) 02440905 70101 FORMAT(" ",6X,"5 5 5 5 5 OR 5*5" ) 02450905 CBB** ********************** BBCSUM0 **********************************02460905 C**** WRITE OUT TEST SUMMARY 02470905 C**** 02480905 IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 02490905 WRITE (I02, 90004) 02500905 WRITE (I02, 90014) 02510905 WRITE (I02, 90004) 02520905 WRITE (I02, 90020) IVPASS 02530905 WRITE (I02, 90022) IVFAIL 02540905 WRITE (I02, 90024) IVDELE 02550905 WRITE (I02, 90026) IVINSP 02560905 WRITE (I02, 90028) IVTOTN, IVTOTL 02570905 CBE** ********************** BBCSUM0 **********************************02580905 CBB** ********************** BBCFOOT0 **********************************02590905 C**** WRITE OUT REPORT FOOTINGS 02600905 C**** 02610905 WRITE (I02,90016) ZPROG, ZPROG 02620905 WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 02630905 WRITE (I02,90019) 02640905 CBE** ********************** BBCFOOT0 **********************************02650905 CBB** ********************** BBCFMT0A **********************************02660905 C**** FORMATS FOR TEST DETAIL LINES 02670905 C**** 02680905 80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 02690905 80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 02700905 80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 02710905 80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 02720905 80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 02730905 1I6,/," ",15X,"CORRECT= " ,I6) 02740905 80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02750905 1E12.5,/," ",16X,"CORRECT= " ,E12.5) 02760905 80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02770905 1A21,/," ",16X,"CORRECT= " ,A21) 02780905 80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 02790905 80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 02800905 80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 02810905 80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 02820905 80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 02830905 80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 02840905 80050 FORMAT (" ",48X,A31) 02850905 CBE** ********************** BBCFMT0A **********************************02860905 CBB** ********************** BBCFMAT1 **********************************02870905 C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 02880905 C**** 02890905 80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02900905 1D17.10,/," ",16X,"CORRECT= " ,D17.10) 02910905 80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 02920905 80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 02930905 80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 02940905 80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 02950905 80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 02960905 80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 02970905 80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02980905 1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 02990905 2"(",F12.5,", ",F12.5,")") 03000905 CBE** ********************** BBCFMAT1 **********************************03010905 CBB** ********************** BBCFMT0B **********************************03020905 C**** FORMAT STATEMENTS FOR PAGE HEADERS 03030905 C**** 03040905 90002 FORMAT ("1") 03050905 90004 FORMAT (" ") 03060905 90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )03070905 90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 03080905 90008 FORMAT (" ",21X,A13,A17) 03090905 90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 03100905 90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 03110905 90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 03120905 1 7X,"REMARKS",24X) 03130905 90014 FORMAT (" ","----------------------------------------------" , 03140905 1 "---------------------------------" ) 03150905 90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 03160905 C**** 03170905 C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 03180905 C**** 03190905 90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 03200905 90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 03210905 1 A13) 03220905 90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 03230905 C**** 03240905 C**** FORMAT STATEMENTS FOR RUN SUMMARY 03250905 C**** 03260905 90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 03270905 90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 03280905 90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 03290905 90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 03300905 90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 03310905 CBE** ********************** BBCFMT0B **********************************03320905 C***** 03330905 C***** END OF TEST SEGMENT 371 03340905 STOP 03350905 END 03360905