C*********************************************************************** C***** FORTRAN 77 C***** FM500 C***** BLKD1 - (260) C***** THIS PROGRAM USES SN501 AND AN502 C*********************************************************************** C***** TESTING OF BLOCK DATA SUBPROGRAMS FEATURES ANS REF C***** IMPLICIT, PARAMETER, EXTERNAL, AND SAVE 16 C***** THIS SEGMENT USES BLOCK DATA PROGRAM C***** AN502 AND SUBROUTINE SN501 C***** C***** S P E C I F I C A T I O N S SEGMENT 260 EXTERNAL AN502 C***** DECLARATION OF VARIABLES IN COMMON BLOCKS C***** PARAMETER (KPI = 2, LPI = 10) C***** INTEGER FXVI C***** REAL JX1S C***** DOUBLE PRECISION AX1D, BX4D C***** DIMENSION BX4D(KPI, KPI, KPI, KPI) C***** COMPLEX AXVC, BX1C, CZ5C C***** LOGICAL AXVB, BZ1B, CX6B(2,2,2,2,2,2) C***** CHARACTER*1 A1XVK, B1X1K, C1X7K C***** CHARACTER*2 D2Z1K C***** CHARACTER*4 E4XVK, G4X2K C***** CHARACTER*(LPI) I10XVK C***** C***** COMMON /BLK1/ IXVI, FXVI, KX1I(2), HX2I(2,2), MX2I(2,2) C***** COMMON /BLK2/ AXVS, BXVS, JX1S(2), CX2S(2,2), DZ3S(2,2,2), EZVS C***** COMMON /BLK3/ RXVD, AX1D(2), BX4D C***** COMMON /BLK4/ AXVC, BX1C(2), CZ5C(2,2,2,2,2) C***** COMMON /BLK5/ AXVB, BZ1B(2), CX6B C***** COMMON /BLK6/ A1XVK, B1X1K(2), C1X7K(2,2,2,2,2,2,2), C***** S2XVK, D2Z1K(2), E4XVK, G4X2K(2,2), I10XVK C***** CALL SN501 STOP C***** END OF TEST SEGMENT 260 END C*********************************************************************** C***** FORTRAN 77 C***** FM501 SN501 - (251) C***** THIS SUBROUTINE IS CALLED BY PROGRAM FM500 C*********************************************************************** C***** C***** GENERAL PURPOSE C***** THIS SEGMENT IS TO BE RUN WITH TEST SEGMENT 250 C***** THIS SEGMENT CONTAINS A SUBROUTINE THAT CHECKS TO SEE IF C***** IF THE BLOCK DATA PROGRAM CORRECTLY INITIALIZED THE MANY C***** VARIABLES C***** CBB** ********************** BBCCOMNT ********************************** C**** C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM C**** VERSION 2.0 C**** C**** C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO C**** GENERAL SERVICES ADMINISTRATION C**** FEDERAL SOFTWARE TESTING CENTER C**** 5203 LEESBURG PIKE, SUITE 1100 C**** FALLS CHURCH, VA. 22041 C**** C**** (703) 756-6153 C**** CBE** ********************** BBCCOMNT ********************************** SUBROUTINE SN501 C***** IMPLICIT INTEGER (H) IMPLICIT DOUBLE PRECISION (R) IMPLICIT CHARACTER*2 (S) C***** DECLARATION OF VARIABLES IN COMMON BLOCKS PARAMETER (KPI = 2, LPI = 10) INTEGER FXVI REAL JX1S DOUBLE PRECISION AX1D, BX4D, DVCORR DIMENSION BX4D(KPI, KPI, KPI, KPI) COMPLEX AXVC, BX1C, CZ5C LOGICAL AXVB, BZ1B, CX6B(2,2,2,2,2,2) CHARACTER*1 A1XVK, B1X1K, C1X7K, CVNC01 CHARACTER*2 D2Z1K, CVNC02 CHARACTER*4 E4XVK, G4X2K, CVNC04 CHARACTER*(LPI) I10XVK, CVNC10 C***** COMMON /BLK1/ IXVI, FXVI, KX1I(2), HX2I(2,2), MX2I(2,2) COMMON /BLK2/ AXVS, BXVS, JX1S(2), CX2S(2,2), DZ3S(2,2,2), EZVS COMMON /BLK3/ RXVD, AX1D(2), BX4D COMMON /BLK4/ AXVC, BX1C(2), CZ5C(2,2,2,2,2) COMMON /BLK5/ AXVB, BZ1B(2), CX6B COMMON /BLK6/ A1XVK, B1X1K(2), C1X7K(2,2,2,2,2,2,2), 1 S2XVK, D2Z1K(2), E4XVK, G4X2K(2,2), I10XVK C***** SAVE/BLK6/ C***** EQUIVALENCE (NYVI, EZVS) C***** LOCAL DECLARATIONS DOUBLE PRECISION AVD COMPLEX AVC C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. CBB** ********************** BBCINITA ********************************** C**** SPECIFICATION STATEMENTS C**** CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 CBE** ********************** BBCINITA ********************************** CBB** ********************** BBCINITB ********************************** C**** INITIALIZE SECTION DATA ZVERS, ZVERSD, ZDATE 1 /'VERSION 2.0 ', '82/08/02*18.33.46', '*NO DATE*TIME'/ DATA ZCOMPL, ZNAME, ZTAPE 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ DATA ZPROJ, ZTAPED, ZPROG 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ DATA REMRKS /' '/ C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED C**** FOR IDENTIFYING THE TEST ENVIRONMENT C**** CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' CZ03 ZPROG = 'PROGRAM NAME' ZDATE = ' DEC. 1983 ' ZCOMPL = ' ICL VME FORTRAN77 ' ZPROJ = ' LANG. CENTRE' ZNAME = 'ICL ' ZTAPE = 'M999 ' ZTAPED = '831005 ' C IVPASS = 0 IVFAIL = 0 IVDELE = 0 IVINSP = 0 IVTOTL = 0 IVTOTN = 0 ICZERO = 0 C C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. I01 = 05 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. I02 = 06 C CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. C CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. C CBE** ********************** BBCINITB ********************************** NWVI = I02 IVTOTL = 37 ZPROG='FM500' CBB** ********************** BBCHED0A ********************************** C**** C**** WRITE REPORT TITLE C**** WRITE (I02, 90002) WRITE (I02, 90006) WRITE (I02, 90007) WRITE (I02, 90008) ZVERS, ZVERSD WRITE (I02, 90009) ZPROG, ZPROG WRITE (I02, 90010) ZDATE, ZCOMPL CBE** ********************** BBCHED0A ********************************** C***** WRITE(NWVI,26000) 26000 FORMAT( / 40H BLKD1 - (260) BLOCK DATA SUBPROGRAMS --/ 1 37H IMPLICIT, PARAMETER, EXTERNAL, SAVE// 2 15H ANS REF. - 16) C***** CBB** ********************** BBCHED0B ********************************** C**** WRITE DETAIL REPORT HEADERS C**** WRITE (I02,90004) WRITE (I02,90004) WRITE (I02,90013) WRITE (I02,90014) WRITE (I02,90015) IVTOTL CBE** ********************** BBCHED0B ********************************** C**** TO DELETE A TEST USED CODE SHOWN IN TEST 1 C**** REPLACE THE DELETE COMMENT WITH DELETE CODE CT001* TEST 1 INTEGER VARIABLE IVTNUM=1 WRITE (NWVI,70140) IVCORR=5 40010 IF (IXVI - 5) 20010,10010,20010 10010 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0011 20010 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80024) IXVI WRITE (NWVI,80026) IVCORR 0011 CONTINUE CT002* TEST 2 INTEGER DECLARE VARIABLE IVTNUM = 2 IVCORR=6 IF (FXVI - 6) 20020,10020,20020 10020 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0021 20020 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80024) FXVI WRITE (NWVI,80026) IVCORR 0021 CONTINUE CT003* TEST 3 INTEGER ARRAY IVTNUM = 3 IVCORR=8 IF (KX1I(2) - 8) 20030,10030,20030 10030 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0031 20030 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80024) KX1I(2) WRITE (NWVI,80026) IVCORR 0031 CONTINUE CT004* TEST 4 IMPLICIT INTEGER ARRAY IVTNUM = 4 IVCORR=1 IF (HX2I(1,2) - 1) 20040,10040,20040 10040 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0041 20040 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80024) HX2I(1,2) WRITE (NWVI,80026) IVCORR 0041 CONTINUE CT005* TEST 5 IVTNUM = 5 IVCORR=5 IF (HX2I(2,2) - 5) 20050,10050,20050 10050 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0051 20050 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80024) HX2I(2,2) WRITE (NWVI,80026) IVCORR 0051 CONTINUE CT006* TEST 6 DO INITIALIZE INTEGER ARRAY IVTNUM = 6 IVINSP=IVINSP+1 WRITE (NWVI,80004) IVTNUM DO 70101 KVI = 1, 2 IVI = MX2I(KVI, KVI) - 4 WRITE (NWVI, 70100) IVI 70101 CONTINUE CT007* TEST 7 REAL VARIABLE IVTNUM = 7 RVCORR=5.3 RVCOMP=0.0 RVCOMP=AXVS - 5.3 IF (RVCOMP + .00005) 20070,10070,40070 40070 IF (RVCOMP - .00005) 10070,10070,20070 10070 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0071 20070 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80028) AXVS WRITE (NWVI,80030) RVCORR 0071 CONTINUE CT008* TEST 8 EXTENDED PRECISION REAL IVTNUM = 8 AVS = BXVS - 1.23456789012345 RVCOMP=1.23456789012345 IF (AVS + .00005) 20080,10080,40080 40080 IF (AVS - .00005) 10080,10080,20080 10080 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0081 20080 IVFAIL=IVFAIL+1 WRITE (NWVI,80004) IVTNUM 70080 FORMAT (1H ,16X,10HCOMPUTED: ,E20.14) WRITE (NWVI,70080) BXVS 70081 FORMAT (1H ,16X,10HCORRECT: ,E20.14) WRITE (NWVI, 70081) RVCOMP 0081 CONTINUE CT009* TEST 9 DECLARED REAL ARRAY IVTNUM = 9 RVCORR=2.45 RVCOMP=2.0 RVCOMP=(JX1S(1) - 2.45) IF (RVCOMP + .00005) 20090,10090,40090 40090 IF (RVCOMP - .00005) 10090,10090,20090 10090 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0091 20090 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80028) JX1S(1) WRITE (NWVI,80030) RVCORR 0091 CONTINUE CT010* TEST 10 IVTNUM = 10 RVCORR=4.58 RVCOMP=2.0 RVCOMP=(JX1S(2) - 4.58) 40100 IF (RVCOMP + .00005) 20100,10100,40101 40101 IF (RVCOMP - .00005) 10100,10100,20100 10100 IVPASS=IVPASS+1 WRITE (NWVI,80002) GO TO 0100 20100 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80028) JX1S(2) WRITE (NWVI,80030) RVCORR 0100 CONTINUE CT011* TEST 11 REAL ARRAY - NAME ONLY IVTNUM = 11 IVINSP=IVINSP+1 WRITE (NWVI,80004) IVTNUM DO 70103 KVI = 1, 2 AVS = CX2S(KVI, KVI) - 1.2 WRITE (NWVI, 70102) AVS 70103 CONTINUE CT012* TEST 12 EQUIVALENCED REAL ARRAY IVTNUM = 12 IVINSP=IVINSP+1 WRITE (NWVI,80004) IVTNUM DO 70104 KVI=1,2 AVS = DZ3S(KVI, KVI, KVI) - 1.1 WRITE (NWVI, 70102) AVS 70104 CONTINUE CT013* TEST 13 REAL VARIABLE - EQUIVALENCED INTEGER IVTNUM = 13 IVCORR=34 IVI = NYVI - 34 40130 IF (IVI - 0) 20130,10130,20130 10130 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0131 20130 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80028) NYVI WRITE (NWVI,80026) IVCORR 0131 CONTINUE CT014* TEST 14 DOUBLE PRECISION ARRAY IVTNUM = 14 KVI=1 AVD = AX1D(KVI) - 1.456D3 DVCORR=1.456D3 IF (AVD + .0000000005) 20140,40141,40140 40140 IF (AVD - .0000000005) 40141,40141,20140 40141 KVI=2 AVD = AX1D(KVI) - 1.456D3 IF (AVD + .0000000005) 20140,10140,40142 40142 IF (AVD - .0000000005) 10140,10140,20140 10140 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0141 20140 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI, 80033) AX1D(KVI) WRITE (NWVI,80035) DVCORR 0141 CONTINUE CT015* TEST 15 DIMENSION DOUBLE PRECISION ARRAY IVTNUM = 15 AVD = BX4D(1,2,1,1) - 34.9D8 IF (AVD + .0000000005) 20150,10150,40150 40150 IF (AVD - .0000000005) 10150,10150,20150 10150 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0151 20150 IVFAIL=IVFAIL+1 DVCORR=34.9D8 WRITE (NWVI,80008) IVTNUM WRITE (NWVI, 80033) BX4D(1,2,1,1) WRITE (NWVI,80035) DVCORR 0151 CONTINUE CT016* TEST 16 IVTNUM = 16 DVCORR=0.00 AVD = BX4D(1,2,1,2) - 2.123D0 IF (AVD + .0000000005) 20160,10160,40160 40160 IF (AVD - .0000000005) 10160,10160,20160 10160 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0161 20160 IVFAIL=IVFAIL+1 DVCORR=2.123D0 WRITE (NWVI,80008) IVTNUM WRITE (NWVI, 80033) BX4D(1,2,1,2) WRITE (NWVI,80035) DVCORR 0161 CONTINUE CT017* TEST 17 IVTNUM = 17 DVCORR=0.00 AVD = BX4D(2,1,1,2) - 873.84D-1 IF (AVD + .0000000005) 20170,10170,40170 40170 IF (AVD - .0000000005) 10170,10170,20170 10170 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0171 20170 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM DVCORR=873.84D-1 WRITE (NWVI, 80033) BX4D(2,1,1,2) WRITE (NWVI,80035) DVCORR 0171 CONTINUE CT018* TEST 18 COMPLEX VARIABLE IVTNUM = 18 AVC = AXVC - (1.5, 2.3) IVINSP=IVINSP+1 WRITE (NWVI,80004) IVTNUM WRITE (NWVI,70107) AVC CT019* TEST 19 COMPLEX ARRAY IVTNUM = 19 AVC = BX1C(1) - (1.1, 1.2) IVINSP=IVINSP+1 WRITE (NWVI,80004) IVTNUM WRITE (NWVI, 70107) AVC CT020* TEST 20 IVTNUM = 20 AVC = BX1C(2) - (3.2, 2.3) IVINSP=IVINSP+1 WRITE (NWVI,80004) IVTNUM WRITE (NWVI, 70107) AVC CT021* TEST 21 COMPLEX ARRAY - EQUIVALENCE IVTNUM = 21 AVC = CZ5C(1,1,1,2,1) - (1.2, 2.1) IVINSP=IVINSP+1 WRITE (NWVI,80004) IVTNUM WRITE (NWVI, 70107) AVC CT022* TEST 22 IVTNUM = 22 AVC = CZ5C(1,2,1,1,2) - (45.3, 2.1) IVINSP=IVINSP+1 WRITE (NWVI,80004) IVTNUM WRITE (NWVI, 70107) AVC CT023* TEST 23 IVTNUM = 23 AVC = CZ5C(2,1,1,1,2) - (309.89, 102.1) IVINSP=IVINSP+1 WRITE (NWVI,80004) IVTNUM WRITE (NWVI, 70107) AVC CT024* TEST 24 LOGICAL VARIABLE IVTNUM = 24 IVCOMP=0 IF (AXVB) IVCOMP=1 40240 IF (IVCOMP-1) 20240,10240,20240 10240 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0241 20240 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM 0241 CONTINUE CT025* TEST 25 LOGICAL ARRAY - EQUIVALENCE IVTNUM = 25 IVCOMP=0 IF (.NOT. BZ1B(2)) IVCOMP=1 40250 IF (IVCOMP-1) 20250,10250,20250 10250 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0251 20250 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM 0251 CONTINUE CT026* TEST 26 DECLARED LOGICAL ARRAY IVTNUM = 26 IVCOMP=0 IF (CX6B(1,1,1,2,2,1)) IVCOMP=1 40260 IF (IVCOMP-1) 20260,10260,20260 10260 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0261 20260 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM 0261 CONTINUE CT027* TEST 27 1 CHARACTER VARIABLE IVTNUM = 27 CVNC01='A' IVCOMP=0 IF (A1XVK .EQ. 'A') IVCOMP=1 40270 IF (IVCOMP-1) 20270,10270,20270 10270 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0271 20270 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80020) A1XVK WRITE (NWVI,80022) CVNC01 0271 CONTINUE CT028* TEST 28 1 CHARACTER ARRAY IVTNUM = 28 CVNC01='K' IVCOMP=0 IF (B1X1K(1) .EQ. 'K') IVCOMP=1 40280 IF (IVCOMP-1) 20280,10280,20280 10280 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0281 20280 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80020) B1X1K(1) WRITE (NWVI,80022) CVNC01 0281 CONTINUE CT029* TEST 29 IVTNUM = 29 CVNC01='K' IVCOMP=0 IF (B1X1K(2) .EQ. 'K') IVCOMP=1 IF (IVCOMP-1) 20290,10290,20290 10290 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0291 20290 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80020) B1X1K(2) WRITE (NWVI,80022) CVNC01 0291 CONTINUE CT030* TEST 30 7 DIMENSION 1 CHARACTER ARRAY IVTNUM = 30 CVNC01='X' IVCOMP=0 KVI=1 IF (C1X7K(KVI,KVI,KVI,KVI,KVI,KVI,KVI) .EQ. 'X') IVCOMP=1 40300 IF(IVCOMP-1) 20300,40301,20300 40301 KVI=2 IVCOMP=0 IF (C1X7K(KVI,KVI,KVI,KVI,KVI,KVI,KVI) .EQ. 'X') IVCOMP=1 40302 IF (IVCOMP-1) 20300,40303,20300 40303 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0301 20300 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80020) C1X7K(KVI,KVI,KVI,KVI,KVI,KVI,KVI) WRITE (NWVI,80022) CVNC01 0301 CONTINUE CT031* TEST 31 IMPLICIT 2 CHARACTER VARIABLE IVTNUM = 31 CVNC02='.,' IVCOMP=0 IF (S2XVK .EQ. '.,') IVCOMP=1 40310 IF (IVCOMP-1) 20310,10310,20310 10310 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0311 20310 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80020) S2XVK WRITE (NWVI,80022) CVNC02 0311 CONTINUE CT032* TEST 32 2 CHARACTER ARRAY - EQUIVALENCED IVTNUM = 32 CVNC02='TE' IVCOMP=0 IF (D2Z1K(1) .EQ. 'TE') IVCOMP=1 40320 IF (IVCOMP-1) 20320,10320,20320 10320 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0321 20320 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80020) D2Z1K(1) WRITE (NWVI,80022) CVNC02 0321 CONTINUE CT033* TEST 33 IVTNUM = 33 CVNC02='ST' IVCOMP=0 IF (D2Z1K(2) .EQ. 'ST') IVCOMP=1 40330 IF (IVCOMP-1) 20330,10330,20330 10330 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0331 20330 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80020) D2Z1K(2) WRITE (NWVI,80022) CVNC02 0331 CONTINUE CT034* TEST 34 DECLARED 4 CHARACTER VARIABLE IVTNUM = 34 CVNC04='ZXCV' IVCOMP=0 IF (E4XVK .EQ. 'ZXCV') IVCOMP=1 40340 IF (IVCOMP-1) 20340,10340,20340 10340 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0341 20340 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80020) E4XVK WRITE (NWVI,80022) CVNC04 0341 CONTINUE CT035* TEST 35 DECLARED 4 CHARACTER ARRAY IVTNUM = 35 CVNC02='SO' IVCOMP=0 IF (G4X2K(1,1) .EQ. 'SO') IVCOMP=1 40350 IF (IVCOMP-1) 20350,10350,20350 10350 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0351 20350 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80020) G4X2K(1,1) WRITE (NWVI,80022) CVNC02 0351 CONTINUE CT036* TEST 36 IVTNUM = 36 CVNC02='OS' IVCOMP=0 IF (G4X2K(2,1) .EQ. 'OS') IVCOMP=1 40360 IF (IVCOMP-1) 20360,10360,20360 10360 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0361 20360 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80020) G4X2K(2,1) WRITE (NWVI,80022) CVNC02 0361 CONTINUE CT037* TEST 37 CHARACTER VARIABLE - PARAMTER LENGTH IVTNUM = 37 CVNC10='FINAL TEST' IVCOMP=0 IF (I10XVK .EQ. 'FINAL TEST') IVCOMP=1 40370 IF (IVCOMP-1) 20370, 10370, 20370 10370 IVPASS=IVPASS+1 WRITE (NWVI,80002) IVTNUM GO TO 0371 20370 IVFAIL=IVFAIL+1 WRITE (NWVI,80008) IVTNUM WRITE (NWVI,80020) I10XVK WRITE (NWVI,80022) CVNC10 0371 CONTINUE C***** 70100 FORMAT(1H ,26X,I5) 70102 FORMAT(1H ,26X,F7.2) 70106 FORMAT(1H ,26X,F7.2) 70107 FORMAT(1H ,26X,1H(,F7.2,2H, ,F7.2,1H),4X,14HSHOULD BE ZERO) 70140 FORMAT (/49X,28HALL VISUAL ANSWERS SHOULD BE 1 /49X,27HZERO FOR TEST SEGMENT TO BE 2 /49X,10HSUCCESSFUL) CBB** ********************** BBCSUM0 ********************************** C**** WRITE OUT TEST SUMMARY C**** IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP WRITE (I02, 90004) WRITE (I02, 90014) WRITE (I02, 90004) WRITE (I02, 90020) IVPASS WRITE (I02, 90022) IVFAIL WRITE (I02, 90024) IVDELE WRITE (I02, 90026) IVINSP WRITE (I02, 90028) IVTOTN, IVTOTL CBE** ********************** BBCSUM0 ********************************** CBB** ********************** BBCFOOT0 ********************************** C**** WRITE OUT REPORT FOOTINGS C**** WRITE (I02,90016) ZPROG, ZPROG WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED WRITE (I02,90019) CBE** ********************** BBCFOOT0 ********************************** CBB** ********************** BBCFMT0A ********************************** C**** FORMATS FOR TEST DETAIL LINES C**** 80000 FORMAT (1H ,2X,I3,4X,7HDELETED,32X,A31) 80002 FORMAT (1H ,2X,I3,4X,7H PASS ,32X,A31) 80004 FORMAT (1H ,2X,I3,4X,7HINSPECT,32X,A31) 80008 FORMAT (1H ,2X,I3,4X,7H FAIL ,32X,A31) 80010 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,15X,10HCOMPUTED= , 1I6,/,1H ,15X,10HCORRECT= ,I6) 80012 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 1E12.5,/,1H ,16X,10HCORRECT= ,E12.5) 80018 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 1A21,/,1H ,16X,10HCORRECT= ,A21) 80020 FORMAT (1H ,16X,10HCOMPUTED= ,A21,1X,A31) 80022 FORMAT (1H ,16X,10HCORRECT= ,A21,1X,A31) 80024 FORMAT (1H ,16X,10HCOMPUTED= ,I6,16X,A31) 80026 FORMAT (1H ,16X,10HCORRECT= ,I6,16X,A31) 80028 FORMAT (1H ,16X,10HCOMPUTED= ,E12.5,10X,A31) 80030 FORMAT (1H ,16X,10HCORRECT= ,E12.5,10X,A31) 80050 FORMAT (1H ,48X,A31) CBE** ********************** BBCFMT0A ********************************** CBB** ********************** BBCFMAT1 ********************************** C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE C**** 80031 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 1D17.10,/,1H ,16X,10HCORRECT= ,D17.10) 80033 FORMAT (1H ,16X,10HCOMPUTED= ,D17.10,10X,A31) 80035 FORMAT (1H ,16X,10HCORRECT= ,D17.10,10X,A31) 80037 FORMAT (1H ,16X,10HCOMPUTED= ,1H(,E12.5,2H, ,E12.5,1H),6X,A31) 80039 FORMAT (1H ,16X,10HCORRECT= ,1H(,E12.5,2H, ,E12.5,1H),6X,A31) 80041 FORMAT (1H ,16X,10HCOMPUTED= ,1H(,F12.5,2H, ,F12.5,1H),6X,A31) 80043 FORMAT (1H ,16X,10HCORRECT= ,1H(,F12.5,2H, ,F12.5,1H),6X,A31) 80045 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 11H(,F12.5,2H, ,F12.5,1H)/,1H ,16X,10HCORRECT= , 21H(,F12.5,2H, ,F12.5,1H)) CBE** ********************** BBCFMAT1 ********************************** CBB** ********************** BBCFMT0B ********************************** C**** FORMAT STATEMENTS FOR PAGE HEADERS C**** 90002 FORMAT (1H1) 90004 FORMAT (1H ) 90006 FORMAT (1H ,20X,31HFEDERAL SOFTWARE TESTING CENTER) 90007 FORMAT (1H ,19X,34HFORTRAN COMPILER VALIDATION SYSTEM) 90008 FORMAT (1H ,21X,A13,A17) 90009 FORMAT (1H ,/,2H *,A5,6HBEGIN*,12X,15HTEST RESULTS - ,A5,/) 90010 FORMAT (1H ,8X,16HTEST DATE*TIME= ,A17,15H - COMPILER= ,A20) 90013 FORMAT (1H ,8H TEST ,10HPASS/FAIL ,6X,17HDISPLAYED RESULTS, 1 7X,7HREMARKS,24X) 90014 FORMAT (1H ,46H----------------------------------------------, 1 33H---------------------------------) 90015 FORMAT (1H ,48X,17HTHIS PROGRAM HAS ,I3,6H TESTS,/) C**** C**** FORMAT STATEMENTS FOR REPORT FOOTINGS C**** 90016 FORMAT (1H ,/,2H *,A5,4HEND*,14X,14HEND OF TEST - ,A5,/) 90018 FORMAT (1H ,A13,13X,A20,7H * ,A10,1H/, 1 A13) 90019 FORMAT (1H ,26HFOR OFFICIAL USE ONLY ,35X,15HCOPYRIGHT 1982) C**** C**** FORMAT STATEMENTS FOR RUN SUMMARY C**** 90020 FORMAT (1H ,21X,I5,13H TESTS PASSED) 90022 FORMAT (1H ,21X,I5,13H TESTS FAILED) 90024 FORMAT (1H ,21X,I5,14H TESTS DELETED) 90026 FORMAT (1H ,21X,I5,25H TESTS REQUIRE INSPECTION) 90028 FORMAT (1H ,21X,I5,4H OF ,I3,15H TESTS EXECUTED) CBE** ********************** BBCFMT0B ********************************** C***** RETURN END C*********************************************************************** C***** FORTRAN 77 C***** FM502 AN502 C***** THIS BLOCK DATA SUBPROGRAM IS USED BY MIAN PROGRAM FM500 C*********************************************************************** C***** C***** GENERAL PURPOSE C***** THIS SEGMENT CONTAINS A BLOCK DATA SUBPROGRAM THAT IS C***** TO BE RUN WITH SEGMENT FM500 C***** THIS SEGMENT WILL USE IMPLICIT, PARAMETER, EXTERNAL C***** AND SAVE STATEMENTS WITHIN IT. C***** BLOCK DATA AN502 C***** IMPLICIT INTEGER (H) IMPLICIT DOUBLE PRECISION (R) IMPLICIT CHARACTER*2 (S) C***** SAVE/BLK6/ C***** DECLARATION OF VARIABLES IN COMMON BLOCKS PARAMETER (KPI = 2, LPI = 10) INTEGER FXVI REAL JX1S DOUBLE PRECISION AX1D, BX4D DIMENSION BX4D(KPI, KPI, KPI, KPI) COMPLEX AXVC, BX1C, CZ5C LOGICAL AXVB, BZ1B, CX6B(2,2,2,2,2,2) CHARACTER*1 A1XVK, B1X1K, C1X7K CHARACTER*2 D2Z1K CHARACTER*4 E4XVK, G4X2K CHARACTER*(LPI) I10XVK C***** COMMON /BLK1/ IXVI, FXVI, KX1I(2), HX2I(2,2), MX2I(2,2) COMMON /BLK2/ AXVS, BXVS, JX1S(2), CX2S(2,2), DZ3S(2,2,2), EZVS COMMON /BLK3/ RXVD, AX1D(2), BX4D COMMON /BLK4/ AXVC, BX1C(2), CZ5C(2,2,2,2,2) COMMON /BLK5/ AXVB, BZ1B(2), CX6B COMMON /BLK6/ A1XVK, B1X1K(2), C1X7K(2,2,2,2,2,2,2), 1 S2XVK, D2Z1K(2), E4XVK, G4X2K(2,2), I10XVK C***** DECLARATION OF VARIABLES FOR EQUIVALENCE STATEMENTS DIMENSION AY3S(2,2,2) COMPLEX AY5C (2,2,2,2,2) LOGICAL AY1B(2) CHARACTER*2 A2Y1K(2) CHARACTER*1 APK PARAMETER (IPI = 5, APS = 5.3, JPI = 2, APK = 'X', MPI = 128) C***** EQUIVALENCE (AY3S, DZ3S) EQUIVALENCE (NYVI, EZVS) EQUIVALENCE (AY5C, CZ5C) EQUIVALENCE (AY1B, BZ1B) EQUIVALENCE (A2Y1K, D2Z1K) C***** DATA IXVI, FXVI, KX1I(2), HX2I(1,2), HX2I(2,2), 1 ((MX2I(IVI, JVI), IVI=1,2), JVI=1,2) /IPI, 6, 8, 1, 5, 4*4/ DATA AXVS, BXVS, JX1S(1), JX1S(2), CX2S /APS, 1.23456789012345, 1 2.45, 4.58, 4*1.2/ DATA AY3S / 8*1.1/ DATA NYVI /34/ DATA AX1D, BX4D(1,2,1,1), BX4D(1,2,1,2), BX4D(2,1,1,2) 1 /JPI*1.456D3, 34.9D8, 2.123D0, 873.84D-1/ DATA AXVC /(1.5, 2.3)/ DATA AY5C(1,1,1,2,1), AY5C(1,2,1,1,2), AY5C(2,1,1,1,2) 1 /(1.2, 2.1), (45.3, 2.1), (309.89, 102.1)/ DATA BX1C(1), BX1C(2), AXVB /(1.1, 1.2), (3.2, 2.3), .TRUE./ DATA AY1B(2), CX6B(1,1,1,2,2,1) /.FALSE., .TRUE./ DATA A1XVK, C1X7K, S2XVK, A2Y1K(1), A2Y1K(2), E4XVK, G4X2K(1,1), 1 G4X2K(2,1), I10XVK, (B1X1K(IVI), IVI=1,2) 2 /'A', MPI*APK, '.,', 'TE', 'ST', 'ZXCV', 'SO', 'OS', 3 'FINAL TEST', 2*'K'/ C***** END