PROGRAM FM258 C***********************************************************************00010258 C***** FORTRAN 77 00020258 C***** FM258 00030258 C***** BLKIF1 - (300) 00040258 C***** 00050258 C***********************************************************************00060258 C***** GENERAL PURPOSE SUBSET REF 00070258 C***** TEST BLOCK IF STATEMENTS 11.6 - 11.9 00080258 C***** SIMPLE TESTS OF IF (E) THEN,ELSE,ELSEIF,ENDIF 00090258 C***** 00100258 CBB** ********************** BBCCOMNT **********************************00110258 C**** 00120258 C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00130258 C**** VERSION 2.1 00140258 C**** 00150258 C**** 00160258 C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00170258 C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00180258 C**** SOFTWARE STANDARDS VALIDATION GROUP 00190258 C**** BUILDING 225 RM A266 00200258 C**** GAITHERSBURG, MD 20899 00210258 C**** 00220258 C**** 00230258 C**** 00240258 CBE** ********************** BBCCOMNT **********************************00250258 CBB** ********************** BBCINITA **********************************00260258 C**** SPECIFICATION STATEMENTS 00270258 C**** 00280258 CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00290258 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00300258 CBE** ********************** BBCINITA **********************************00310258 CBB** ********************** BBCINITB **********************************00320258 C**** INITIALIZE SECTION 00330258 DATA ZVERS, ZVERSD, ZDATE 00340258 1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00350258 DATA ZCOMPL, ZNAME, ZTAPE 00360258 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00370258 DATA ZPROJ, ZTAPED, ZPROG 00380258 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00390258 DATA REMRKS /' '/ 00400258 C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00410258 C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00420258 C**** 00430258 CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00440258 CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00450258 CZ03 ZPROG = 'PROGRAM NAME' 00460258 CZ04 ZDATE = 'DATE OF TEST' 00470258 CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00480258 CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00490258 CZ07 ZNAME = 'NAME OF USER' 00500258 CZ08 ZTAPE = 'TAPE OWNER/ID' 00510258 CZ09 ZTAPED = 'DATE TAPE COPIED' 00520258 C 00530258 IVPASS = 0 00540258 IVFAIL = 0 00550258 IVDELE = 0 00560258 IVINSP = 0 00570258 IVTOTL = 0 00580258 IVTOTN = 0 00590258 ICZERO = 0 00600258 C 00610258 C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00620258 I01 = 05 00630258 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00640258 I02 = 06 00650258 C 00660258 CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00670258 C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00680258 CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00690258 C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00700258 C 00710258 CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00720258 C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00730258 CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00740258 C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00750258 C 00760258 CBE** ********************** BBCINITB **********************************00770258 NUVI = I02 00780258 ZPROG='FM258' 00790258 CBB** ********************** BBCHED0A **********************************00800258 C**** 00810258 C**** WRITE REPORT TITLE 00820258 C**** 00830258 WRITE (I02, 90002) 00840258 WRITE (I02, 90006) 00850258 WRITE (I02, 90007) 00860258 WRITE (I02, 90008) ZVERS, ZVERSD 00870258 WRITE (I02, 90009) ZPROG, ZPROG 00880258 WRITE (I02, 90010) ZDATE, ZCOMPL 00890258 CBE** ********************** BBCHED0A **********************************00900258 C***** TOTAL NUMBER OF EXPECTED TEST 00910258 IVTOTL=8 00920258 C***** HEADER FOR SEGMENT 300 00930258 WRITE(NUVI,30000) 00940258 30000 FORMAT(/1X," BLKIF1 - (300) BLOCK IF - SIMPLE TEST" // 00950258 1 " SUBSET REF. 11.6 - 11.9" ) 00960258 CBB** ********************** BBCHED0B **********************************00970258 C**** WRITE DETAIL REPORT HEADERS 00980258 C**** 00990258 WRITE (I02,90004) 01000258 WRITE (I02,90004) 01010258 WRITE (I02,90013) 01020258 WRITE (I02,90014) 01030258 WRITE (I02,90015) IVTOTL 01040258 CBE** ********************** BBCHED0B **********************************01050258 C***** 01060258 WRITE (NUVI,30025) 01070258 CT001* TEST 1 IF (E) THEN .*. ELSE .*. ENDIF 01080258 IVTNUM = 1 01090258 IVINSP=IVINSP+1 01100258 WRITE(NUVI,80004) IVTNUM 01110258 JVI = 0 01120258 30001 JVI = JVI + 1 01130258 IF (JVI .EQ. 2) THEN 01140258 KVI = 2 01150258 ELSE 01160258 KVI = 1 01170258 ENDIF 01180258 LVI = JVI - KVI 01190258 WRITE(NUVI,30018) LVI 01200258 GOTO(30001,30002), JVI 01210258 30002 CONTINUE 01220258 CT002* TEST 2 IF (E) THEN .*. ENDIF 01230258 IVTNUM = 2 01240258 IVINSP=IVINSP+1 01250258 WRITE(NUVI,80004) IVTNUM 01260258 JVI = 0 01270258 KVI = 1 01280258 30003 JVI = JVI + 1 01290258 IF (JVI .EQ. 2) THEN 01300258 KVI = 2 01310258 ENDIF 01320258 LVI = JVI - KVI 01330258 WRITE(NUVI,30018) LVI 01340258 GOTO(30003,30004), JVI 01350258 30004 CONTINUE 01360258 CT003* TEST 3 IF (E) THEN ... ELSE .*. ENDIF 01370258 IVTNUM = 3 01380258 IVINSP=IVINSP+1 01390258 WRITE(NUVI,80004) IVTNUM 01400258 JVI = 0 01410258 KVI = 1 01420258 30005 JVI = JVI + 1 01430258 IF (JVI .EQ. 1) THEN 01440258 ELSE 01450258 KVI = 2 01460258 ENDIF 01470258 LVI = JVI - KVI 01480258 WRITE(NUVI,30018) LVI 01490258 GOTO(30005,30006), JVI 01500258 30006 CONTINUE 01510258 CT004* TEST 4 IF (E) THEN .*. ELSEIF .*. ELSE .*. ENDIF 01520258 IVTNUM = 4 01530258 IVINSP=IVINSP+1 01540258 WRITE(NUVI,80004) IVTNUM 01550258 JVI = 0 01560258 30007 JVI = JVI + 1 01570258 IF (JVI .EQ. 1) THEN 01580258 KVI = 1 01590258 ELSEIF (JVI .EQ. 2) THEN 01600258 KVI = 2 01610258 ELSE 01620258 KVI = 3 01630258 ENDIF 01640258 LVI = JVI - KVI 01650258 WRITE(NUVI,30018) LVI 01660258 GOTO(30007,30007,30008), JVI 01670258 30008 CONTINUE 01680258 CT005* TEST 5 IF (E) THEN .*. ELSEIF .*. ENDIF 01690258 IVTNUM = 5 01700258 IVINSP=IVINSP+1 01710258 WRITE(NUVI,80004) IVTNUM 01720258 JVI = 0 01730258 KVI = 1 01740258 30009 JVI = JVI + 1 01750258 IF (JVI .GT. 2) THEN 01760258 KVI = 3 01770258 ELSEIF (JVI .EQ. 2) THEN 01780258 KVI = 2 01790258 ENDIF 01800258 LVI = JVI - KVI 01810258 WRITE(NUVI,30018) LVI 01820258 GOTO(30009,30009,30010), JVI 01830258 30010 CONTINUE 01840258 CT006* TEST 6 IF (E) THEN .*. ELSEIF ... ELSE .*. ENDIF 01850258 IVTNUM = 6 01860258 IVINSP=IVINSP+1 01870258 WRITE(NUVI,80004) IVTNUM 01880258 JVI = 0 01890258 KVI = 1 01900258 30011 JVI = JVI + 1 01910258 IF ( JVI .GT. 2) THEN 01920258 KVI = 3 01930258 ELSEIF (JVI .EQ. 1) THEN 01940258 ELSE 01950258 KVI = 2 01960258 ENDIF 01970258 LVI = JVI - KVI 01980258 WRITE(NUVI,30018) LVI 01990258 GOTO(30011,30011,30012), JVI 02000258 30012 CONTINUE 02010258 CT007* TEST 7 IF (E) THEN ... ELSEIF .*. ELSE .*. ENDIF 02020258 IVTNUM = 7 02030258 IVINSP=IVINSP+1 02040258 WRITE(NUVI,80004) IVTNUM 02050258 JVI = 0 02060258 KVI = 1 02070258 30013 JVI = JVI + 1 02080258 IF (JVI .EQ. 1) THEN 02090258 ELSEIF (JVI .LT. 3) THEN 02100258 KVI = 2 02110258 ELSE 02120258 KVI = 3 02130258 ENDIF 02140258 LVI = JVI - KVI 02150258 WRITE(NUVI,30018) LVI 02160258 GOTO(30013,30013,30014), JVI 02170258 30014 CONTINUE 02180258 CT008* TEST 8 IF (E) THEN .*. ELSEIF .*. ELSEIF .*. ENDIF 02190258 IVTNUM = 8 02200258 IVINSP=IVINSP+1 02210258 WRITE(NUVI,80004) IVTNUM 02220258 JVI = 0 02230258 30015 JVI = JVI + 1 02240258 KVI = 4 02250258 IF ( JVI .EQ. 1) THEN 02260258 KVI = 1 02270258 ELSEIF (JVI .EQ. 2) THEN 02280258 KVI = 2 02290258 ELSEIF (JVI .LT. 4) THEN 02300258 KVI = 3 02310258 ENDIF 02320258 LVI = JVI - KVI 02330258 WRITE(NUVI,30018) LVI 02340258 GOTO(30015,30015,30015,30016), JVI 02350258 C***** 02360258 30016 CONTINUE 02370258 C***** 02380258 CBB** ********************** BBCSUM0 **********************************02390258 C**** WRITE OUT TEST SUMMARY 02400258 C**** 02410258 IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 02420258 WRITE (I02, 90004) 02430258 WRITE (I02, 90014) 02440258 WRITE (I02, 90004) 02450258 WRITE (I02, 90020) IVPASS 02460258 WRITE (I02, 90022) IVFAIL 02470258 WRITE (I02, 90024) IVDELE 02480258 WRITE (I02, 90026) IVINSP 02490258 WRITE (I02, 90028) IVTOTN, IVTOTL 02500258 CBE** ********************** BBCSUM0 **********************************02510258 CBB** ********************** BBCFOOT0 **********************************02520258 C**** WRITE OUT REPORT FOOTINGS 02530258 C**** 02540258 WRITE (I02,90016) ZPROG, ZPROG 02550258 WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 02560258 WRITE (I02,90019) 02570258 CBE** ********************** BBCFOOT0 **********************************02580258 CBB** ********************** BBCFMT0A **********************************02590258 C**** FORMATS FOR TEST DETAIL LINES 02600258 C**** 02610258 80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 02620258 80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 02630258 80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 02640258 80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 02650258 80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 02660258 1I6,/," ",15X,"CORRECT= " ,I6) 02670258 80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02680258 1E12.5,/," ",16X,"CORRECT= " ,E12.5) 02690258 80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02700258 1A21,/," ",16X,"CORRECT= " ,A21) 02710258 80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 02720258 80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 02730258 80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 02740258 80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 02750258 80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 02760258 80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 02770258 80050 FORMAT (" ",48X,A31) 02780258 CBE** ********************** BBCFMT0A **********************************02790258 CBB** ********************** BBCFMT0B **********************************02800258 C**** FORMAT STATEMENTS FOR PAGE HEADERS 02810258 C**** 02820258 90002 FORMAT ("1") 02830258 90004 FORMAT (" ") 02840258 90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )02850258 90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 02860258 90008 FORMAT (" ",21X,A13,A17) 02870258 90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 02880258 90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 02890258 90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 02900258 1 7X,"REMARKS",24X) 02910258 90014 FORMAT (" ","----------------------------------------------" , 02920258 1 "---------------------------------" ) 02930258 90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 02940258 C**** 02950258 C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 02960258 C**** 02970258 90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 02980258 90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 02990258 1 A13) 03000258 90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 03010258 C**** 03020258 C**** FORMAT STATEMENTS FOR RUN SUMMARY 03030258 C**** 03040258 90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 03050258 90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 03060258 90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 03070258 90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 03080258 90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 03090258 CBE** ********************** BBCFMT0B **********************************03100258 30026 FORMAT ("1", 26X,I1) 03110258 30018 FORMAT(" ",26X,I10) 03120258 30025 FORMAT(/49X,"TESTS 1-3 (2 COMPUTED RESULTS)" , 03130258 1 /49X,"TESTS 4-7 (3 COMPUTED RESULTS)" , 03140258 2 /49X,"TEST 8 (4 COMPUTED RESULTS)" , 03150258 3 /49X,"ALL ANSWERS SHOULD BE ZERO" ) 03160258 C***** END OF TEST SEGMENT 300 03170258 STOP 03180258 END 03190258