blob: b1c091773c9fcf89e9d703efe855143bd8f58fb0 [file] [log] [blame]
PROGRAM FM261
C***********************************************************************00010261
C***** FORTRAN 77 00020261
C***** FM261 00030261
C***** BLKIF4 - (303) 00040261
C***** THIS PROGRAM CALLS SUBROUTINES SN262, SN263 AND INTEGER 00050261
C FUNCTION IF264 00060261
C***********************************************************************00070261
C***** GENERAL PURPOSE SUBSET REF 00080261
C***** TEST BLOCK IF STATEMENTS 11.6 - 11.900090261
C***** WITH SUBROUTINE CALLS 15.6 00100261
C***** USES SUBROUTINES SN262 (750), SN263 (751) 00110261
C***** AND FUNCTION IF264 (752) 00120261
CBB** ********************** BBCCOMNT **********************************00130261
C**** 00140261
C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00150261
C**** VERSION 2.1 00160261
C**** 00170261
C**** 00180261
C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00190261
C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00200261
C**** SOFTWARE STANDARDS VALIDATION GROUP 00210261
C**** BUILDING 225 RM A266 00220261
C**** GAITHERSBURG, MD 20899 00230261
C**** 00240261
C**** 00250261
C**** 00260261
CBE** ********************** BBCCOMNT **********************************00270261
CBB** ********************** BBCINITA **********************************00280261
C**** SPECIFICATION STATEMENTS 00290261
C**** 00300261
CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00310261
1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00320261
CBE** ********************** BBCINITA **********************************00330261
CBB** ********************** BBCINITB **********************************00340261
C**** INITIALIZE SECTION 00350261
DATA ZVERS, ZVERSD, ZDATE 00360261
1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00370261
DATA ZCOMPL, ZNAME, ZTAPE 00380261
1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00390261
DATA ZPROJ, ZTAPED, ZPROG 00400261
1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00410261
DATA REMRKS /' '/ 00420261
C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00430261
C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00440261
C**** 00450261
CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00460261
CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00470261
CZ03 ZPROG = 'PROGRAM NAME' 00480261
CZ04 ZDATE = 'DATE OF TEST' 00490261
CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00500261
CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00510261
CZ07 ZNAME = 'NAME OF USER' 00520261
CZ08 ZTAPE = 'TAPE OWNER/ID' 00530261
CZ09 ZTAPED = 'DATE TAPE COPIED' 00540261
C 00550261
IVPASS = 0 00560261
IVFAIL = 0 00570261
IVDELE = 0 00580261
IVINSP = 0 00590261
IVTOTL = 0 00600261
IVTOTN = 0 00610261
ICZERO = 0 00620261
C 00630261
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00640261
I01 = 05 00650261
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00660261
I02 = 06 00670261
C 00680261
CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00690261
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00700261
CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00710261
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00720261
C 00730261
CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00740261
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00750261
CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00760261
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00770261
C 00780261
CBE** ********************** BBCINITB **********************************00790261
NUVI = I02 00800261
ZPROG = 'FM261' 00810261
CBB** ********************** BBCHED0A **********************************00820261
C**** 00830261
C**** WRITE REPORT TITLE 00840261
C**** 00850261
WRITE (I02, 90002) 00860261
WRITE (I02, 90006) 00870261
WRITE (I02, 90007) 00880261
WRITE (I02, 90008) ZVERS, ZVERSD 00890261
WRITE (I02, 90009) ZPROG, ZPROG 00900261
WRITE (I02, 90010) ZDATE, ZCOMPL 00910261
CBE** ********************** BBCHED0A **********************************00920261
C***** TOTAL NUMBER OF EXPECTED TESTS 00930261
IVTOTL = 2 00940261
C***** HEADER FOR SEGMENT 303 00950261
WRITE(NUVI,30300) 00960261
30300 FORMAT(" ",/" BLKIF4 - (303) BLOCK IF" // 00970261
1 " BLOCK IF WITH SUBPROGRAM CALL" // 00980261
2 " SUBSET REF. 11.6 - 11.9, 15.6" ) 00990261
CBB** ********************** BBCHED0B **********************************01000261
C**** WRITE DETAIL REPORT HEADERS 01010261
C**** 01020261
WRITE (I02,90004) 01030261
WRITE (I02,90004) 01040261
WRITE (I02,90013) 01050261
WRITE (I02,90014) 01060261
WRITE (I02,90015) IVTOTL 01070261
CBE** ********************** BBCHED0B **********************************01080261
C***** 01090261
WRITE (NUVI, 30325) 01100261
CT001* TEST 1 BLOCK IF WITH SUBROUTINE CALLS 01110261
IVTNUM = 1 01120261
IVINSP = IVINSP + 1 01130261
WRITE (NUVI, 80004) IVTNUM 01140261
IVI = 3 01150261
CALL SN262 (IVI) 01160261
IF (IVI .GT. 0) THEN 01170261
CALL SN262 (IVI) 01180261
ELSE 01190261
CALL SN263 (IVI) 01200261
ENDIF 01210261
LVI = 7 - IVI 01220261
WRITE (NUVI, 30301) LVI 01230261
C***** CONTINUE 01240261
CT002* TEST 2 CALL OF FUNCTION CONTAINING BLOCK IF 01250261
IVTNUM = 2 01260261
IVINSP = IVINSP + 1 01270261
WRITE (NUVI, 80004) IVTNUM 01280261
IVI = 7 01290261
IVI = IF264 (IVI .GT. 0) 01300261
LVI = 8 - IVI 01310261
WRITE (NUVI, 30301) LVI 01320261
IVI = IF264 (LVI .NE. 0) 01330261
LVI = 6 - IVI 01340261
WRITE (NUVI, 30301) LVI 01350261
C***** 01360261
30325 FORMAT (/49X,'TEST 1 (1 COMPUTED RESULT)'/ 01370261
1 49X,'TEST 2 (2 COMPUTED RESULTS)'/ 01380261
2 49X,'ALL ANSWERS SHOULD BE ZERO') 01390261
30301 FORMAT (" ",26X,I10) 01400261
C***** 01410261
CBB** ********************** BBCSUM0 **********************************01420261
C**** WRITE OUT TEST SUMMARY 01430261
C**** 01440261
IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 01450261
WRITE (I02, 90004) 01460261
WRITE (I02, 90014) 01470261
WRITE (I02, 90004) 01480261
WRITE (I02, 90020) IVPASS 01490261
WRITE (I02, 90022) IVFAIL 01500261
WRITE (I02, 90024) IVDELE 01510261
WRITE (I02, 90026) IVINSP 01520261
WRITE (I02, 90028) IVTOTN, IVTOTL 01530261
CBE** ********************** BBCSUM0 **********************************01540261
CBB** ********************** BBCFOOT0 **********************************01550261
C**** WRITE OUT REPORT FOOTINGS 01560261
C**** 01570261
WRITE (I02,90016) ZPROG, ZPROG 01580261
WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 01590261
WRITE (I02,90019) 01600261
CBE** ********************** BBCFOOT0 **********************************01610261
CBB** ********************** BBCFMT0A **********************************01620261
C**** FORMATS FOR TEST DETAIL LINES 01630261
C**** 01640261
80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 01650261
80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 01660261
80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 01670261
80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 01680261
80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 01690261
1I6,/," ",15X,"CORRECT= " ,I6) 01700261
80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 01710261
1E12.5,/," ",16X,"CORRECT= " ,E12.5) 01720261
80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 01730261
1A21,/," ",16X,"CORRECT= " ,A21) 01740261
80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 01750261
80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 01760261
80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 01770261
80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 01780261
80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 01790261
80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 01800261
80050 FORMAT (" ",48X,A31) 01810261
CBE** ********************** BBCFMT0A **********************************01820261
CBB** ********************** BBCFMT0B **********************************01830261
C**** FORMAT STATEMENTS FOR PAGE HEADERS 01840261
C**** 01850261
90002 FORMAT ("1") 01860261
90004 FORMAT (" ") 01870261
90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )01880261
90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 01890261
90008 FORMAT (" ",21X,A13,A17) 01900261
90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 01910261
90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 01920261
90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 01930261
1 7X,"REMARKS",24X) 01940261
90014 FORMAT (" ","----------------------------------------------" , 01950261
1 "---------------------------------" ) 01960261
90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 01970261
C**** 01980261
C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 01990261
C**** 02000261
90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 02010261
90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 02020261
1 A13) 02030261
90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 02040261
C**** 02050261
C**** FORMAT STATEMENTS FOR RUN SUMMARY 02060261
C**** 02070261
90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 02080261
90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 02090261
90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 02100261
90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 02110261
90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 02120261
CBE** ********************** BBCFMT0B **********************************02130261
C***** END OF TEST SEGMENT 303 02140261
STOP 02150261
END 02160261
C***********************************************************************00010262
C***** FORTRAN 77 00020262
C***** FM262 00030262
C***** SN262 SN262 - (750) 00040262
C***** SUBROUTINE CALLED BY FM261 00050262
C***********************************************************************00060262
C***** 00070262
SUBROUTINE SN262 (IWVI) 00080262
C***** 00090262
IWVI = IWVI + 2 00100262
C***** 00110262
RETURN 00120262
END 00130262
C***********************************************************************00010263
C***** FORTRAN 77 00020263
C***** FM263 00030263
C***** SN263 SN263 - (751) 00040263
C***** SUBROUTINE CALLED BY FM261 00050263
C***********************************************************************00060263
C***** 00070263
SUBROUTINE SN263 (IWVI) 00080263
C***** 00090263
IWVI = IWVI * (-10) 00100263
C***** 00110263
RETURN 00120263
END 00130263
C***********************************************************************00010264
C***** FORTRAN 77 00020264
C***** FM264 00030264
C***** IF264 IF264 - (752) 00040264
C***** INTEGER FUNCTION CALLED BY FM261 00050264
C***********************************************************************00060264
C***** 00070264
INTEGER FUNCTION IF264 (AWVB) 00080264
LOGICAL AWVB 00090264
C***** 00100264
IF (AWVB) THEN 00110264
IF264 = 8 00120264
RETURN 00130264
ELSE 00140264
IF264 = 6 00150264
ENDIF 00160264
C***** 00170264
RETURN 00180264
END 00190264