blob: 688d508697406cb41fa4cebe46dd9351710ce2ec [file] [log] [blame]
PROGRAM FM711 00010711
C 00020711
C THIS ROUTINE TESTS ADJUSTABLE ARRAYS AND ADJUSTABLE ANS REF.00030711
C DIMENSIONS, AND THE USE OF ARRAY 5.5.1 00040711
C NAMES. 5.6 00050711
C 00060711
C THIS ROUTINE USES ROUTINES 712-714 AS SUBROUTINES. 00070711
C 00080711
CBB** ********************** BBCCOMNT **********************************00090711
C**** 00100711
C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00110711
C**** VERSION 2.1 00120711
C**** 00130711
C**** 00140711
C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00150711
C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00160711
C**** SOFTWARE STANDARDS VALIDATION GROUP 00170711
C**** BUILDING 225 RM A266 00180711
C**** GAITHERSBURG, MD 20899 00190711
C**** 00200711
C**** 00210711
C**** 00220711
CBE** ********************** BBCCOMNT **********************************00230711
IMPLICIT DOUBLE PRECISION (D), COMPLEX (Z), LOGICAL (L) 00240711
IMPLICIT CHARACTER*27 (C) 00250711
CBB** ********************** BBCINITA **********************************00260711
C**** SPECIFICATION STATEMENTS 00270711
C**** 00280711
CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00290711
1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00300711
CBE** ********************** BBCINITA **********************************00310711
C 00320711
INTEGER I2D001(3,5) 00330711
CHARACTER CVCOMP*20,CVCORR*20,C1N001(3)*5,C1N002(4)*5,CVN001*10 00340711
COMMON ICC001, ICC002 00350711
DATA I2D001 / 11,21,31,12,22,32,13,23,33,14,24,34,15,25,35 / 00360711
DATA C1N001 / '-3412', ' 108', '+9792' / 00370711
DATA C1N002 / '( "I/', 'O TES', 'T: ",', ' A10)' / 00380711
C 00390711
C 00400711
CBB** ********************** BBCINITB **********************************00410711
C**** INITIALIZE SECTION 00420711
DATA ZVERS, ZVERSD, ZDATE 00430711
1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00440711
DATA ZCOMPL, ZNAME, ZTAPE 00450711
1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00460711
DATA ZPROJ, ZTAPED, ZPROG 00470711
1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00480711
DATA REMRKS /' '/ 00490711
C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00500711
C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00510711
C**** 00520711
CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00530711
CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00540711
CZ03 ZPROG = 'PROGRAM NAME' 00550711
CZ04 ZDATE = 'DATE OF TEST' 00560711
CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00570711
CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00580711
CZ07 ZNAME = 'NAME OF USER' 00590711
CZ08 ZTAPE = 'TAPE OWNER/ID' 00600711
CZ09 ZTAPED = 'DATE TAPE COPIED' 00610711
C 00620711
IVPASS = 0 00630711
IVFAIL = 0 00640711
IVDELE = 0 00650711
IVINSP = 0 00660711
IVTOTL = 0 00670711
IVTOTN = 0 00680711
ICZERO = 0 00690711
C 00700711
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00710711
I01 = 05 00720711
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00730711
I02 = 06 00740711
C 00750711
CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00760711
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00770711
CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00780711
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00790711
C 00800711
CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00810711
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00820711
CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00830711
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00840711
C 00850711
CBE** ********************** BBCINITB **********************************00860711
ZPROG='FM711' 00870711
IVTOTL = 5 00880711
CBB** ********************** BBCHED0A **********************************00890711
C**** 00900711
C**** WRITE REPORT TITLE 00910711
C**** 00920711
WRITE (I02, 90002) 00930711
WRITE (I02, 90006) 00940711
WRITE (I02, 90007) 00950711
WRITE (I02, 90008) ZVERS, ZVERSD 00960711
WRITE (I02, 90009) ZPROG, ZPROG 00970711
WRITE (I02, 90010) ZDATE, ZCOMPL 00980711
CBE** ********************** BBCHED0A **********************************00990711
CBB** ********************** BBCHED0B **********************************01000711
C**** WRITE DETAIL REPORT HEADERS 01010711
C**** 01020711
WRITE (I02,90004) 01030711
WRITE (I02,90004) 01040711
WRITE (I02,90013) 01050711
WRITE (I02,90014) 01060711
WRITE (I02,90015) IVTOTL 01070711
CBE** ********************** BBCHED0B **********************************01080711
ICC001 = 3 01090711
ICC002 = 4 01100711
C 01110711
C TESTS 1-2 - TEST ADJUSTABLE ARRAYS WHERE THE LOWER AND/OR UPPER 01120711
C BOUNDS ARE ARGUMENTS OF A SUBROUTINE OR IN COMMON. 01130711
C 01140711
C 01150711
CT001* TEST 001 **** FCVS PROGRAM 711 **** 01160711
C 01170711
IVTNUM = 1 01180711
IVCOMP = 0 01190711
IVCORR = 24 01200711
CALL SN712(3,5,I2D001,IVCOMP) 01210711
40010 IF (IVCOMP - 24) 20010, 10010, 20010 01220711
10010 IVPASS = IVPASS + 1 01230711
WRITE (I02,80002) IVTNUM 01240711
GO TO 0011 01250711
20010 IVFAIL = IVFAIL + 1 01260711
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01270711
0011 CONTINUE 01280711
C 01290711
CT002* TEST 002 **** FCVS PROGRAM 711 **** 01300711
C 01310711
IVTNUM = 2 01320711
IVCOMP = 0 01330711
IVCORR = 113 01340711
CALL SN713(1,I2D001,IVCOMP) 01350711
40020 IF (IVCOMP - 113) 20020, 10020, 20020 01360711
10020 IVPASS = IVPASS + 1 01370711
WRITE (I02,80002) IVTNUM 01380711
GO TO 0021 01390711
20020 IVFAIL = IVFAIL + 1 01400711
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01410711
0021 CONTINUE 01420711
C 01430711
CT003* TEST 003 **** FCVS PROGRAM 711 **** 01440711
C 01450711
C TEST THE ABILITY TO USE AN ARRAY ELEMENT NAME 01460711
C AS A UNIT IDENTIFIER FOR AN INTERNAL FILE 01470711
C IN AN INPUT/OUTPUT STATEMENT 01480711
C 01490711
IVTNUM = 3 01500711
IVCOMP = 0 01510711
IVCORR = 9792 01520711
READ (UNIT=C1N001(3),FMT=70010) IVCOMP 01530711
70010 FORMAT (I5) 01540711
40030 IF (IVCOMP - 9792) 20030, 10030, 20030 01550711
10030 IVPASS = IVPASS + 1 01560711
WRITE (I02,80002) IVTNUM 01570711
GO TO 0031 01580711
20030 IVFAIL = IVFAIL + 1 01590711
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01600711
0031 CONTINUE 01610711
C 01620711
CT004* TEST 004 **** FCVS PROGRAM 711 **** 01630711
C TEST THE ABILITY TO USE AN ARRAY NAME 01640711
C AS A FORMAT IDENTIFIER IN AN INPUT/OUTPUT 01650711
C STATEMENT 01660711
C 01670711
IVTNUM = 4 01680711
CVCOMP = ' ' 01690711
CVCORR = 'I/O TEST: THIS IS IT' 01700711
CVN001 = 'THIS IS IT' 01710711
WRITE (UNIT=CVCOMP, FMT=C1N002) CVN001 01720711
IVCOMP = 0 01730711
IF (CVCOMP .EQ. 'I/O TEST: THIS IS IT') IVCOMP = 1 01740711
IF (IVCOMP - 1) 20040, 10040, 20040 01750711
10040 IVPASS = IVPASS + 1 01760711
WRITE (I02,80002) IVTNUM 01770711
GO TO 0041 01780711
20040 IVFAIL = IVFAIL + 1 01790711
WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 01800711
0041 CONTINUE 01810711
C 01820711
CT005* TEST 005 **** FCVS PROGRAM 711 **** 01830711
C TEST THE ABILITY TO USE AN ARRAY NAME 01840711
C IN A SAVE STATMENT 01850711
C 01860711
IVTNUM = 5 01870711
IVCOMP = 0 01880711
IVCORR = 174 01890711
CALL SN714(1,IVD001) 01900711
CALL SN714(2,IVCOMP) 01910711
40050 IF (IVCOMP - 174) 20050, 10050, 20050 01920711
10050 IVPASS = IVPASS + 1 01930711
WRITE (I02,80002) IVTNUM 01940711
GO TO 0051 01950711
20050 IVFAIL = IVFAIL + 1 01960711
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01970711
0051 CONTINUE 01980711
C 01990711
CBB** ********************** BBCSUM0 **********************************02000711
C**** WRITE OUT TEST SUMMARY 02010711
C**** 02020711
IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 02030711
WRITE (I02, 90004) 02040711
WRITE (I02, 90014) 02050711
WRITE (I02, 90004) 02060711
WRITE (I02, 90020) IVPASS 02070711
WRITE (I02, 90022) IVFAIL 02080711
WRITE (I02, 90024) IVDELE 02090711
WRITE (I02, 90026) IVINSP 02100711
WRITE (I02, 90028) IVTOTN, IVTOTL 02110711
CBE** ********************** BBCSUM0 **********************************02120711
CBB** ********************** BBCFOOT0 **********************************02130711
C**** WRITE OUT REPORT FOOTINGS 02140711
C**** 02150711
WRITE (I02,90016) ZPROG, ZPROG 02160711
WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 02170711
WRITE (I02,90019) 02180711
CBE** ********************** BBCFOOT0 **********************************02190711
90001 FORMAT (" ",56X,"FM711") 02200711
90000 FORMAT (" ",50X,"END OF PROGRAM FM711" ) 02210711
CBB** ********************** BBCFMT0A **********************************02220711
C**** FORMATS FOR TEST DETAIL LINES 02230711
C**** 02240711
80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 02250711
80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 02260711
80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 02270711
80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 02280711
80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 02290711
1I6,/," ",15X,"CORRECT= " ,I6) 02300711
80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02310711
1E12.5,/," ",16X,"CORRECT= " ,E12.5) 02320711
80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02330711
1A21,/," ",16X,"CORRECT= " ,A21) 02340711
80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 02350711
80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 02360711
80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 02370711
80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 02380711
80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 02390711
80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 02400711
80050 FORMAT (" ",48X,A31) 02410711
CBE** ********************** BBCFMT0A **********************************02420711
CBB** ********************** BBCFMAT1 **********************************02430711
C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 02440711
C**** 02450711
80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02460711
1D17.10,/," ",16X,"CORRECT= " ,D17.10) 02470711
80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 02480711
80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 02490711
80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 02500711
80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 02510711
80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 02520711
80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 02530711
80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02540711
1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 02550711
2"(",F12.5,", ",F12.5,")") 02560711
CBE** ********************** BBCFMAT1 **********************************02570711
CBB** ********************** BBCFMT0B **********************************02580711
C**** FORMAT STATEMENTS FOR PAGE HEADERS 02590711
C**** 02600711
90002 FORMAT ("1") 02610711
90004 FORMAT (" ") 02620711
90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )02630711
90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 02640711
90008 FORMAT (" ",21X,A13,A17) 02650711
90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 02660711
90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 02670711
90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 02680711
1 7X,"REMARKS",24X) 02690711
90014 FORMAT (" ","----------------------------------------------" , 02700711
1 "---------------------------------" ) 02710711
90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 02720711
C**** 02730711
C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 02740711
C**** 02750711
90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 02760711
90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 02770711
1 A13) 02780711
90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 02790711
C**** 02800711
C**** FORMAT STATEMENTS FOR RUN SUMMARY 02810711
C**** 02820711
90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 02830711
90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 02840711
90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 02850711
90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 02860711
90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 02870711
CBE** ********************** BBCFMT0B **********************************02880711
END 02890711
C THIS SUBROUTINE IS TO BE RUN WITH ROUTINE 711. 00010712
C 00020712
C THIS SUBROUTINE TESTS ADJUSTABLE ARRAYS AND ADJUSTABLE 00030712
C DIMENSIONS WHERE THE UPPER BOUND 00040712
C IS A DUMMY ARGUMENT. 00050712
C 00060712
SUBROUTINE SN712(IVD001,IVD002,I2D001,IVD003) 00070712
INTEGER I2D001(1:IVD001,1:IVD002) 00080712
IVD003 = I2D001(2,4) 00090712
RETURN 00100712
END 00110712
C THIS SUBROUTINE IS TO BE RUN WITH ROUTINE 711. 00010713
C 00020713
C THIS SUBROUTINE TESTS ADJUSTABLE ARRAYS AND ADJUSTABLE 00030713
C DIMENSIONS WHERE THE LOWER AND 00040713
C UPPER BOUND MAY BE A DUMMY ARGUMENT 00050713
C AND/OR IN COMMON. 00060713
C 00070713
SUBROUTINE SN713(IVD001,I2D001,IVD002) 00080713
COMMON ICC001, ICC002 00090713
INTEGER I2D001(IVD001:ICC001,2:ICC002) 00100713
I2D001(3,4) = 113 00110713
IVD002 = I2D001(3,4) 00120713
RETURN 00130713
END 00140713
C THIS SUBROUTINE IS TO BE RUN WITH ROUTINE 711. 00010714
C 00020714
C THIS SUBROUTINE TESTS THE USE OF ARRAY NAMES IN A 00030714
C SAVE STATEMENT. 00040714
C 00050714
SUBROUTINE SN714(IVD001, IVD002) 00060714
INTEGER I2N001(2,2) 00070714
SAVE I2N001 00080714
IF (IVD001.GT.1) GO TO 70010 00090714
I2N001(1,1) = -12 00100714
I2N001(1,2) = 137 00110714
I2N001(2,1) = 69 00120714
I2N001(2,2) = 102 00130714
70010 IVD002 = I2N001(1,2)+I2N001(2,2)/17-(2*I2N001(1,1)-I2N001(2,1))/3 00140714
RETURN 00150714
END 00160714