blob: fcaec87269bb10c2177f20469803f7d389d0e0b1 [file] [log] [blame]
PROGRAM FM517 00010517
C 00020517
C THIS PROGRAM TESTS THE RETURN STATEMENT ANS REF. 00030517
C RETURN E 15.8.1 00040517
C IN SUBROUTINE SUBPROGRAMS. E IS AN ARITHMETIC 15.8.3 00050517
C EXPRESSION WHOSE VALUE INDICATES WHERE CONTROL 00060517
C WILL BE RETURNED TO. 00070517
C 00080517
C THIS ROUTINE USES SUBROUTINE SUBPROGRAMS SN518 00090517
C AND SN519 00100517
C 00110517
CBB** ********************** BBCCOMNT **********************************00120517
C**** 00130517
C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00140517
C**** VERSION 2.1 00150517
C**** 00160517
C**** 00170517
C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00180517
C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00190517
C**** SOFTWARE STANDARDS VALIDATION GROUP 00200517
C**** BUILDING 225 RM A266 00210517
C**** GAITHERSBURG, MD 20899 00220517
C**** 00230517
C**** 00240517
C**** 00250517
CBE** ********************** BBCCOMNT **********************************00260517
IMPLICIT DOUBLE PRECISION (D), COMPLEX (Z), LOGICAL (L) 00270517
IMPLICIT CHARACTER*27 (C) 00280517
CBB** ********************** BBCINITA **********************************00290517
C**** SPECIFICATION STATEMENTS 00300517
C**** 00310517
CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00320517
1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00330517
CBE** ********************** BBCINITA **********************************00340517
C 00350517
00360517
C 00370517
C 00380517
CBB** ********************** BBCINITB **********************************00390517
C**** INITIALIZE SECTION 00400517
DATA ZVERS, ZVERSD, ZDATE 00410517
1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00420517
DATA ZCOMPL, ZNAME, ZTAPE 00430517
1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00440517
DATA ZPROJ, ZTAPED, ZPROG 00450517
1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00460517
DATA REMRKS /' '/ 00470517
C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00480517
C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00490517
C**** 00500517
CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00510517
CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00520517
CZ03 ZPROG = 'PROGRAM NAME' 00530517
CZ04 ZDATE = 'DATE OF TEST' 00540517
CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00550517
CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00560517
CZ07 ZNAME = 'NAME OF USER' 00570517
CZ08 ZTAPE = 'TAPE OWNER/ID' 00580517
CZ09 ZTAPED = 'DATE TAPE COPIED' 00590517
C 00600517
IVPASS = 0 00610517
IVFAIL = 0 00620517
IVDELE = 0 00630517
IVINSP = 0 00640517
IVTOTL = 0 00650517
IVTOTN = 0 00660517
ICZERO = 0 00670517
C 00680517
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00690517
I01 = 05 00700517
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00710517
I02 = 06 00720517
C 00730517
CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00740517
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00750517
CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00760517
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00770517
C 00780517
CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00790517
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00800517
CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00810517
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00820517
C 00830517
CBE** ********************** BBCINITB **********************************00840517
ZPROG = 'FM517' 00850517
IVTOTL = 5 00860517
CBB** ********************** BBCHED0A **********************************00870517
C**** 00880517
C**** WRITE REPORT TITLE 00890517
C**** 00900517
WRITE (I02, 90002) 00910517
WRITE (I02, 90006) 00920517
WRITE (I02, 90007) 00930517
WRITE (I02, 90008) ZVERS, ZVERSD 00940517
WRITE (I02, 90009) ZPROG, ZPROG 00950517
WRITE (I02, 90010) ZDATE, ZCOMPL 00960517
CBE** ********************** BBCHED0A **********************************00970517
CBB** ********************** BBCHED0B **********************************00980517
C**** WRITE DETAIL REPORT HEADERS 00990517
C**** 01000517
WRITE (I02,90004) 01010517
WRITE (I02,90004) 01020517
WRITE (I02,90013) 01030517
WRITE (I02,90014) 01040517
WRITE (I02,90015) IVTOTL 01050517
CBE** ********************** BBCHED0B **********************************01060517
C TESTS 1 AND 2 TEST RETURN CONTROL PROCESSING IN THE EXECUTION 01070517
C OF A SUBROUTINE SUBPROGRAM WHICH PROVIDES ALTERNATE RETURN 01080517
C 01090517
CT001* TEST 001 **** FCVS PROGRAM 517 **** 01100517
C 01110517
IVTNUM = 1 01120517
IVCOMP = 0 01130517
IVCORR = 3 01140517
IVN001 = 2 01150517
CALL SN518(IVN001,*0012,*0013) 01160517
IVCOMP = 1 01170517
GO TO 0014 01180517
0012 CONTINUE 01190517
IVCOMP = 2 01200517
GO TO 0014 01210517
0013 CONTINUE 01220517
IVCOMP = 3 01230517
0014 CONTINUE 01240517
40010 IF (IVCOMP - 3) 20010, 10010, 20010 01250517
10010 IVPASS = IVPASS + 1 01260517
WRITE (I02,80002) IVTNUM 01270517
GO TO 0011 01280517
20010 IVFAIL = IVFAIL + 1 01290517
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01300517
0011 CONTINUE 01310517
C 01320517
CT002* TEST 002 **** FCVS PROGRAM 517 **** 01330517
C 01340517
IVTNUM = 2 01350517
IVCOMP = 0 01360517
IVCORR = 5 01370517
CALL SN519(7,*0022,*0023) 01380517
IVCOMP = 1 01390517
GO TO 0024 01400517
0022 CONTINUE 01410517
IVCOMP = 3 01420517
GO TO 0024 01430517
0023 CONTINUE 01440517
IVCOMP = 5 01450517
0024 CONTINUE 01460517
40020 IF (IVCOMP - 5) 20020, 10020, 20020 01470517
10020 IVPASS = IVPASS + 1 01480517
WRITE (I02,80002) IVTNUM 01490517
GO TO 0021 01500517
20020 IVFAIL = IVFAIL + 1 01510517
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01520517
0021 CONTINUE 01530517
C 01540517
CT003* TEST 003 **** FCVS PROGRAM 517 **** 01550517
C TEST 003 TESTS THE "RETURN E" STATEMENT WHERE E HAS VALUE 01560517
C LESS THAN ONE 01570517
C 01580517
IVTNUM = 3 01590517
IVCOMP = 0 01600517
IVCORR = -2 01610517
CALL SN518(-3,*0032,*0033) 01620517
IVCOMP = -2 01630517
GO TO 0034 01640517
0032 CONTINUE 01650517
IVCOMP = -4 01660517
GO TO 0034 01670517
0033 CONTINUE 01680517
IVCOMP = -6 01690517
0034 CONTINUE 01700517
40030 IF (IVCOMP + 2) 20030, 10030, 20030 01710517
10030 IVPASS = IVPASS + 1 01720517
WRITE (I02,80002) IVTNUM 01730517
GO TO 0031 01740517
20030 IVFAIL = IVFAIL + 1 01750517
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01760517
0031 CONTINUE 01770517
C 01780517
CT004* TEST 004 **** FCVS PROGRAM 517 **** 01790517
C TEST 004 TESTS THE "RETURN E" STATEMENT WHERE E HAS VALUE 01800517
C GREATER THAN THE NUMBER OF ASTERISKS IN A SUBROUTINE STATEMENT 01810517
C 01820517
IVTNUM = 4 01830517
IVCOMP = 0 01840517
IVCORR = 7 01850517
CALL SN518(3,*0042,*0043) 01860517
IVCOMP = 7 01870517
GO TO 0044 01880517
0042 CONTINUE 01890517
IVCOMP = 9 01900517
GO TO 0044 01910517
0043 CONTINUE 01920517
IVCOMP = 11 01930517
0044 CONTINUE 01940517
40040 IF (IVCOMP - 7) 20040, 10040, 20040 01950517
10040 IVPASS = IVPASS + 1 01960517
WRITE (I02,80002) IVTNUM 01970517
GO TO 0041 01980517
20040 IVFAIL = IVFAIL + 1 01990517
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02000517
0041 CONTINUE 02010517
C 02020517
CT005* TEST 005 **** FCVS PROGRAM 517 **** 02030517
C TEST 005 TESTS THE "RETURN E" STATEMENT WHERE E HAS VALUE 02040517
C GREATER THAN THE NUMBER OF ASTERISKS IN AN ENTRY STATEMENT 02050517
C 02060517
IVTNUM = 5 02070517
IVCOMP = 0 02080517
IVCORR = -10 02090517
CALL EN872(9,*0052,*0053) 02100517
IVCOMP = -10 02110517
GO TO 0054 02120517
0052 CONTINUE 02130517
IVCOMP = 3 02140517
GO TO 0054 02150517
0053 CONTINUE 02160517
IVCOMP = 11 02170517
0054 CONTINUE 02180517
40050 IF (IVCOMP + 10) 20050, 10050, 20050 02190517
10050 IVPASS = IVPASS + 1 02200517
WRITE (I02,80002) IVTNUM 02210517
GO TO 0051 02220517
20050 IVFAIL = IVFAIL + 1 02230517
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02240517
0051 CONTINUE 02250517
C 02260517
CBB** ********************** BBCSUM0 **********************************02270517
C**** WRITE OUT TEST SUMMARY 02280517
C**** 02290517
IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 02300517
WRITE (I02, 90004) 02310517
WRITE (I02, 90014) 02320517
WRITE (I02, 90004) 02330517
WRITE (I02, 90020) IVPASS 02340517
WRITE (I02, 90022) IVFAIL 02350517
WRITE (I02, 90024) IVDELE 02360517
WRITE (I02, 90026) IVINSP 02370517
WRITE (I02, 90028) IVTOTN, IVTOTL 02380517
CBE** ********************** BBCSUM0 **********************************02390517
CBB** ********************** BBCFOOT0 **********************************02400517
C**** WRITE OUT REPORT FOOTINGS 02410517
C**** 02420517
WRITE (I02,90016) ZPROG, ZPROG 02430517
WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 02440517
WRITE (I02,90019) 02450517
CBE** ********************** BBCFOOT0 **********************************02460517
90001 FORMAT (" ",56X,"FM517") 02470517
90000 FORMAT (" ",50X,"END OF PROGRAM FM517" ) 02480517
CBB** ********************** BBCFMT0A **********************************02490517
C**** FORMATS FOR TEST DETAIL LINES 02500517
C**** 02510517
80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 02520517
80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 02530517
80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 02540517
80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 02550517
80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 02560517
1I6,/," ",15X,"CORRECT= " ,I6) 02570517
80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02580517
1E12.5,/," ",16X,"CORRECT= " ,E12.5) 02590517
80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02600517
1A21,/," ",16X,"CORRECT= " ,A21) 02610517
80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 02620517
80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 02630517
80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 02640517
80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 02650517
80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 02660517
80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 02670517
80050 FORMAT (" ",48X,A31) 02680517
CBE** ********************** BBCFMT0A **********************************02690517
CBB** ********************** BBCFMAT1 **********************************02700517
C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 02710517
C**** 02720517
80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02730517
1D17.10,/," ",16X,"CORRECT= " ,D17.10) 02740517
80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 02750517
80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 02760517
80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 02770517
80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 02780517
80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 02790517
80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 02800517
80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02810517
1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 02820517
2"(",F12.5,", ",F12.5,")") 02830517
CBE** ********************** BBCFMAT1 **********************************02840517
CBB** ********************** BBCFMT0B **********************************02850517
C**** FORMAT STATEMENTS FOR PAGE HEADERS 02860517
C**** 02870517
90002 FORMAT ("1") 02880517
90004 FORMAT (" ") 02890517
90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )02900517
90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 02910517
90008 FORMAT (" ",21X,A13,A17) 02920517
90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 02930517
90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 02940517
90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 02950517
1 7X,"REMARKS",24X) 02960517
90014 FORMAT (" ","----------------------------------------------" , 02970517
1 "---------------------------------" ) 02980517
90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 02990517
C**** 03000517
C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 03010517
C**** 03020517
90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 03030517
90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 03040517
1 A13) 03050517
90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 03060517
C**** 03070517
C**** FORMAT STATEMENTS FOR RUN SUMMARY 03080517
C**** 03090517
90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 03100517
90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 03110517
90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 03120517
90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 03130517
90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 03140517
CBE** ********************** BBCFMT0B **********************************03150517
STOP 03160517
END 03170517
C 00010518
C THIS ROUTINE IS TO BE RUN WITH ROUTINE 517 00020518
C 00030518
C THIS SUBROUTINE TESTS THE USE OF THE "RETURN E" STATEMENT 00040518
C WHERE E IS AN INTEGER VARIABLE 00050518
C 00060518
SUBROUTINE SN518(IVD001,*,*) 00070518
RETURN IVD001 00080518
END 00090518
C 00010519
C THIS ROUTINE IS TO BE RUN WITH ROUTINE 517 00020519
C 00030519
C THIS SUBROUTINE TESTS THE USE OF THE "RETURN E" STATEMENT 00040519
C WHERE E IS AN INTEGER EXPRESSION 00050519
C 00060519
SUBROUTINE SN519(IVD001,*,*) 00070519
RETURN (IVD001 - 2*(IVD001/2) + 1) 00080519
ENTRY EN872(IVD002,*,*) 00090519
RETURN (IVD002 - 3) 00100519
END 00110519