blob: 44641b2bdbab32c5e6db8fc0109272f3b8dd5b18 [file] [log] [blame]
PROGRAM FM912
C***********************************************************************00010912
C***** FORTRAN 77 00020912
C***** FM912 00030912
C***** DIRAF3 - (412) 00040912
C***** THIS PROGRAM CALLS SUBROUTINE SN913 IN FILE FM913 00050912
C***********************************************************************00060912
C***** TESTING OF DIRECT ACCESS FILES ANS REF 00070912
C***** FORMATTED, WITH BOTH SEQUENTIAL AND DIRECT 12.5 00080912
C***** ACCESS TO THE SAME FILE 00090912
C***** 00100912
C***** USES SUBROUTINE SN913 FAQ 00110912
C***** 00120912
C***** S P E C I F I C A T I O N S SEGMENT 412 00130912
C***********************************************************************00140912
DIMENSION F1S(10), G1S(10) 00150912
CHARACTER*20 A20VK, B20VK, C20VK, A201K(10), B201K(10) 00160912
CHARACTER*47 A47VK, B47VK, C47VK 00170912
CHARACTER*51 A51VK 00180912
CHARACTER*12 A12VK 00190912
CHARACTER A120VK*120, B120VK*120, A1VK*1, A4VK*4 00200912
CHARACTER*31 REMK,REMK1,REMK2,REMK3,REMK4,REMK5,REMK45 00210912
LOGICAL AVB, BVB, CVB, C1B(10), D1B(10) 00220912
DOUBLE PRECISION AVD, BVD, CVD, DVD, D1D(10), B1D(15) 00230912
C***** 00240912
C***** BELOW CHARACTER STATEMENT ESTABLISHES THE FILE NAME VARIABLES. 00250912
CX20 REPLACED BY FEXEC X-20 CONTROL CARD. X-20 IS FOR REPLACING 00260912
CHARACTER*15 CDIR 00270912
C THE CHARACTER STATEMENT FOR FILE NAMES ASSOCIATED WITH X-130 00280912
C (PROGRAM VARIABLE CDIR) IF NOT VALID FOR THE PROCESSOR. 00290912
CBB** ********************** BBCINITA **********************************00300912
C**** SPECIFICATION STATEMENTS 00310912
C**** 00320912
CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00330912
1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00340912
CBE** ********************** BBCINITA **********************************00350912
CBB** ********************** BBCINITB **********************************00360912
C**** INITIALIZE SECTION 00370912
DATA ZVERS, ZVERSD, ZDATE 00380912
1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00390912
DATA ZCOMPL, ZNAME, ZTAPE 00400912
1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00410912
DATA ZPROJ, ZTAPED, ZPROG 00420912
1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00430912
DATA REMRKS /' '/ 00440912
C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00450912
C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00460912
C**** 00470912
CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00480912
CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00490912
CZ03 ZPROG = 'PROGRAM NAME' 00500912
CZ04 ZDATE = 'DATE OF TEST' 00510912
CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00520912
CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00530912
CZ07 ZNAME = 'NAME OF USER' 00540912
CZ08 ZTAPE = 'TAPE OWNER/ID' 00550912
CZ09 ZTAPED = 'DATE TAPE COPIED' 00560912
C 00570912
IVPASS = 0 00580912
IVFAIL = 0 00590912
IVDELE = 0 00600912
IVINSP = 0 00610912
IVTOTL = 0 00620912
IVTOTN = 0 00630912
ICZERO = 0 00640912
C 00650912
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00660912
I01 = 05 00670912
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00680912
I02 = 06 00690912
C 00700912
CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00710912
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00720912
CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00730912
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00740912
C 00750912
CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00760912
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00770912
CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00780912
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00790912
C 00800912
CBE** ********************** BBCINITB **********************************00810912
C***** 00820912
C***** THE FOLLOWING STATEMENT MUST BE CHANGED IF THE 00830912
C***** UNITS GIVEN ARE NOT CAPABLE OF BEING OPENED AS SPECIFIED. 00840912
C***** 00850912
C I13 CONTAINS THE UNIT NUMBER FOR A NAMED DIRECT ACCESS FILE. 00860912
I13 = 936 00870912
CX130 REPLACED BY FEXEC X-130 CONTROL CARD (DIR. FILE UNIT NUMBER). 00880912
C SPECIFYING I13 = NN OVERRIDES THE DEFAULT I13 = 24. 00890912
C 00900912
C***** THE FOLLOWING STATEMENT MUST BE CHANGED IF THE NAME 00910912
C***** GIVEN IS NOT A VALID FILE SPECIFIER FOR A DIRECT, 00920912
C***** FORMATTED FILE. 00930912
C***** 00940912
C CDIR CONTAINS THE FILE NAME FOR UNIT I13. 00950912
CDIR = ' DIRFILE912' 00960912
C 00970912
CX201 REPLACED BY FEXEC X-201 CONTROL CARD. CX201 IS FOR SYSTEMS 00980912
C REQUIRING A DIFFERENT FILE SPECIFIER FOR FILES ASSOCIATED WITH 00990912
C X-130 THAN THE DEFAULT CDIR = ' DIRFILE'. 01000912
C 01010912
C***** FILE NUMBER AND NAME ASSIGNMENT 01020912
NUVI = I02 01030912
KUVI = I13 01040912
IVTOTL = 26 01050912
ZPROG = 'FM912' 01060912
C***** 01070912
C***** FILE NUMBER AND NAME ASSIGNMENT 01080912
C***** 01090912
REMK1='RECORD 1 - ERR PATH TAKEN' 01100912
REMK2='RECORD 2 - ERR PATH TAKEN' 01110912
REMK3='RECORD 3 - ERR PATH TAKEN' 01120912
REMK4='RECORD 4 - ERR PATH TAKEN' 01130912
REMK5='RECORD 5 - ERR PATH TAKEN' 01140912
REMK45='RECORD 4 + 5 - ERR PATH TAKEN' 01150912
CBB** ********************** BBCHED0A **********************************01160912
C**** 01170912
C**** WRITE REPORT TITLE 01180912
C**** 01190912
WRITE (I02, 90002) 01200912
WRITE (I02, 90006) 01210912
WRITE (I02, 90007) 01220912
WRITE (I02, 90008) ZVERS, ZVERSD 01230912
WRITE (I02, 90009) ZPROG, ZPROG 01240912
WRITE (I02, 90010) ZDATE, ZCOMPL 01250912
CBE** ********************** BBCHED0A **********************************01260912
WRITE(NUVI,41200) 01270912
41200 FORMAT( " ",/" DIRAF3 - (412) DIRECT ACCESS FORMATTED FILE" / 01280912
1 " WITH OPTION TO OPEN AS A SEQUENTIAL FILE" / 01290912
2 " ANS REF. - 12.5" ) 01300912
CBB** ********************** BBCHED0B **********************************01310912
C**** WRITE DETAIL REPORT HEADERS 01320912
C**** 01330912
WRITE (I02,90004) 01340912
WRITE (I02,90004) 01350912
WRITE (I02,90013) 01360912
WRITE (I02,90014) 01370912
WRITE (I02,90015) IVTOTL 01380912
CBE** ********************** BBCHED0B **********************************01390912
C***** 01400912
C***** PLUS OR MINUS VALUES 01410912
C***** 01420912
CVS = 0.0001 01430912
CVD = 0.0001D0 01440912
C***** 01450912
C***** INITIALIZE DATA ARRAYS 01460912
C***** 01470912
CALL SN913(F1S,G1S,C1B,D1B,D1D,B1D,A201K,B201K) 01480912
C***** 01490912
C***** OPEN DIRECT ACCESS FILE - STATUS=NEW 01500912
C***** 01510912
OPEN(FILE=CDIR, UNIT=KUVI, ACCESS='DIRECT',RECL=120, 01520912
1 FORM='FORMATTED',STATUS='NEW') 01530912
C***** 01540912
CT001* TEST 1 - CHECKS RECL AND NEXTREC 01550912
C***** FOR JUST OPENED DIRECT ACCESS FILE 01560912
C***** 01570912
IVTNUM=1 01580912
INQUIRE(UNIT=KUVI, RECL=IVI, NEXTREC=KVI) 01590912
IF (IVI .NE. 120) GO TO 33020 01600912
IF (KVI .NE. 1) GO TO 33020 01610912
WRITE(NUVI,80002)IVTNUM 01620912
IVPASS=IVPASS+1 01630912
GO TO 33030 01640912
33020 REMK='ERROR IN INQUIRE' 01650912
WRITE(NUVI,55010)IVTNUM,REMK 01660912
55010 FORMAT(" ","TEST ",I3,1X," FAIL",34X,A31) 01670912
IVFAIL=IVFAIL+1 01680912
WRITE(NUVI,55020)IVI,KVI 01690912
55020 FORMAT(" ",/,11X,"COMPUTED: RECL=" ,I6,5X,"NEXTREC=",I6) 01700912
WRITE(NUVI,55030) 01710912
55030 FORMAT(" ",10X,"CORRECT: RECL= 120" ,5X,"NEXTREC= 1" /) 01720912
C***** 01730912
CT002* TEST 2 - WRITES RECORD 1 01740912
C***** 01750912
33030 IVTNUM=2 01760912
IVI = 1 01770912
AVS = F1S (IVI) 01780912
BVS = F1S(IVI + 1) 01790912
A20VK = A201K (IVI) 01800912
AVB = C1B (IVI) 01810912
AVD = D1D (IVI) 01820912
WRITE(UNIT=KUVI,REC=1,FMT=41204,ERR=33040) IVI, AVS, BVS, AVD, 01830912
1 AVB, A20VK 01840912
41204 FORMAT(I5, F10.5, E14.6, D14.8, L10, A20, 35X, ' LAST RECORD') 01850912
WRITE(NUVI,80002)IVTNUM 01860912
IVPASS=IVPASS+1 01870912
GO TO 33050 01880912
33040 WRITE(NUVI,55010)IVTNUM,REMK1 01890912
IVFAIL=IVFAIL+1 01900912
C***** 01910912
CT003* TEST 3 - WRITES RECORD 2 01920912
C***** 01930912
33050 IVTNUM=3 01940912
IVI = IVI + 1 01950912
AVS = F1S (IVI) 01960912
BVS = F1S(IVI + 1) 01970912
A20VK = A201K (IVI) 01980912
AVB = C1B (IVI) 01990912
AVD = D1D (IVI) 02000912
WRITE(UNIT=KUVI,REC=2,FMT=41205,ERR=33060) BVS, AVD, IVI, AVS, 02010912
1 AVB, A20VK 02020912
41205 FORMAT(E12.6, D15.7, I4, F11.5, L2, A25, 30X, ' LASTS RECORD') 02030912
WRITE(NUVI,80002)IVTNUM 02040912
IVPASS=IVPASS+1 02050912
GO TO 33070 02060912
33060 WRITE(NUVI,55010)IVTNUM,REMK2 02070912
IVFAIL=IVFAIL+1 02080912
C***** 02090912
CT004* TEST 4 - WRITES RECORD 3 02100912
C***** 02110912
33070 IVTNUM=4 02120912
IVI = IVI + 1 02130912
AVS = F1S (IVI) 02140912
BVS = F1S(IVI + 1) 02150912
A20VK = A201K (IVI) 02160912
AVB = C1B (IVI) 02170912
AVD = D1D (IVI) 02180912
WRITE(UNIT=KUVI,REC=3,FMT=41206,ERR=33080) IVI, BVS, AVS, AVD, 02190912
1 AVB, A20VK 02200912
41206 FORMAT(I5, F10.5, E14.6, D14.8, L10, A20, 30X, 'THE LAST REC') 02210912
WRITE(NUVI,80002)IVTNUM 02220912
IVPASS=IVPASS+1 02230912
GO TO 33090 02240912
02250912
33080 WRITE(NUVI,55010)IVTNUM,REMK3 02260912
IVFAIL=IVFAIL+1 02270912
C***** 02280912
CT005* TEST 5 - WRITES RECORDS 4 AND 5 WITH ONE WRITE 02290912
C***** 02300912
33090 IVTNUM=5 02310912
IVI = IVI + 1 02320912
AVS = F1S (IVI) 02330912
BVS = F1S(IVI + 1) 02340912
A20VK = A201K (IVI) 02350912
AVB = C1B (IVI) 02360912
AVD = D1D (IVI) 02370912
WRITE(UNIT=KUVI,REC=4,FMT=41207,ERR=33100) IVI, AVS, AVD, AVB, 02380912
1 A20VK, BVS, BVS, AVD, AVB, IVI, AVS, A20VK 02390912
41207 FORMAT(I5, F10.5, D14.8, L10, A20, E14.6, 35X, 'NEXT TO LAST',/ 02400912
1 E12.6, D15.7, L2, I4, F11.5, A25, 30X, 'THE END') 02410912
WRITE(NUVI,80002)IVTNUM 02420912
IVPASS=IVPASS+1 02430912
GO TO 33290 02440912
33100 WRITE(NUVI,55010)IVTNUM,REMK45 02450912
IVFAIL=IVFAIL+1 02460912
C***** 02470912
CT006* TEST 6 - CHECK RECL AND NEXTREC ON OPENED FILE 02480912
C***** 02490912
33290 IVTNUM=6 02500912
INQUIRE(UNIT=KUVI, RECL=IVI, NEXTREC=KVI) 02510912
IF (IVI .NE. 120)GO TO 33300 02520912
IF(KVI .NE. 6)GO TO 33300 02530912
WRITE(NUVI,80002)IVTNUM 02540912
IVPASS=IVPASS+1 02550912
GO TO 33110 02560912
33300 REMK='ERROR IN INQUIRE' 02570912
WRITE(NUVI,55010)IVTNUM,REMK 02580912
IVFAIL=IVFAIL+1 02590912
WRITE(NUVI,55020)IVI,KVI 02600912
WRITE(NUVI,55040) 02610912
55040 FORMAT(" ",10X,"CORRECT: RECL= 120" ,5X,"NEXTREC= 6" /) 02620912
C***** 02630912
CT007* TEST 7 - READS RECORD 1 02640912
C***** 02650912
33110 IVTNUM=7 02660912
IVI = 1 02670912
READ(UNIT=KUVI,REC=IVI,FMT=41210,ERR=33120) KVI, AVS, BVS, AVD, 02680912
1 AVB, A20VK, A47VK 02690912
41210 FORMAT(I5, F10.5, E14.6, D14.8, L10, A20, A47) 02700912
ISWT=1 02710912
GO TO 33220 02720912
02730912
33120 WRITE(NUVI,55010)IVTNUM,REMK1 02740912
IVFAIL=IVFAIL+1 02750912
C***** 02760912
CT008* TEST 8 - READS RECORD 2 02770912
C***** 02780912
33130 IVTNUM=8 02790912
IVI = 2 02800912
READ(UNIT=KUVI,REC=IVI,FMT=41238,ERR=33140) BVS, AVD, KVI, AVS, 02810912
1 AVB, A20VK, A51VK 02820912
41238 FORMAT(E12.6, D15.7, I4, F11.5, L2, A25, A51) 02830912
ISWT=2 02840912
GO TO 33230 02850912
02860912
33140 WRITE(NUVI,55010)IVTNUM,REMK2 02870912
IVFAIL=IVFAIL+1 02880912
C***** 02890912
CT009* TEST 9 - READS RECORD 3 02900912
C***** 02910912
33150 IVTNUM=9 02920912
IVI = 3 02930912
READ(UNIT=KUVI,REC=IVI,FMT=41210,ERR=33160) LVI, DVS, GVS, BVD, 02940912
1 BVB, B20VK, B47VK 02950912
ISWT=3 02960912
GO TO 33240 02970912
02980912
33160 WRITE(NUVI,55010)IVTNUM,REMK3 02990912
IVFAIL=IVFAIL+1 03000912
C***** 03010912
CT010* TEST 10 - READS RECORD 4 03020912
C***** 03030912
33170 IVTNUM=10 03040912
IVI = 4 03050912
READ(UNIT=KUVI,REC=IVI,FMT=41241,ERR=33180) NVI, EVS, DVD, CVB, 03060912
1 C20VK, FVS, C47VK 03070912
41241 FORMAT(I5, F10.5, D14.8, L10, A20, E14.6, A47) 03080912
ISWT=4 03090912
GO TO 33250 03100912
03110912
33180 WRITE(NUVI,55010)IVTNUM,REMK4 03120912
IVFAIL=IVFAIL+1 03130912
C***** 03140912
CT011* TEST 11 - READS RECORD 5 03150912
C***** 03160912
33190 IVTNUM=11 03170912
IVI = 5 03180912
JVI = 4 03190912
READ(UNIT=KUVI,REC=IVI,FMT=41218,ERR=33200) BVS, AVD, AVB, KVI, 03200912
1 AVS, A20VK, A51VK 03210912
41218 FORMAT(E12.6, D15.7, L2, I4, F11.5, A25, A51) 03220912
ISWT=5 03230912
GO TO 33260 03240912
03250912
33200 WRITE(NUVI,55010)IVTNUM,REMK5 03260912
IVFAIL=IVFAIL+1 03270912
C***** 03280912
CT012* TEST 12 - OVERWRITES RECORD 3 03290912
C***** 03300912
33210 IVTNUM=12 03310912
IVI = 3 03320912
AVS = G1S (IVI) 03330912
BVS = G1S(IVI + 1) 03340912
A20VK = B201K (IVI) 03350912
AVB = D1B (IVI) 03360912
AVD = B1D (IVI) 03370912
WRITE(UNIT=KUVI,REC=3,FMT=41251,ERR=33310) IVI, AVS, BVS, AVD, 03380912
1 A20VK, AVB 03390912
41251 FORMAT(I5, F11.5, E13.6, D14.8, A20, L10, 35X, 'NEW RECORD ') 03400912
WRITE(NUVI,80002)IVTNUM 03410912
IVPASS=IVPASS+1 03420912
GO TO 33320 03430912
03440912
33310 WRITE(NUVI,55010)IVTNUM,REMK3 03450912
IVFAIL=IVFAIL+1 03460912
C***** 03470912
CT013* TEST 13 - OVERWRITES RECORD 5 03480912
C***** 03490912
33320 IVTNUM=13 03500912
IVI = 5 03510912
AVS = G1S (IVI) 03520912
BVS = G1S(IVI - 1) 03530912
A20VK = B201K (IVI) 03540912
AVB = D1B (IVI) 03550912
AVD = B1D (IVI) 03560912
WRITE(UNIT=KUVI,REC=5,FMT=41252,ERR=33330) AVS, IVI, A20VK, AVD,03570912
1 BVS, AVB 03580912
41252 FORMAT(F10.5, I5, A20, D14.8, E14.6, L10, 35X, 'STOP RECORD') 03590912
WRITE(NUVI,80002)IVTNUM 03600912
IVPASS=IVPASS+1 03610912
GO TO 33340 03620912
03630912
33330 WRITE(NUVI,55010)IVTNUM,REMK5 03640912
IVFAIL=IVFAIL+1 03650912
C***** 03660912
C***** CLOSE AND REOPEN DIRECT ACCESS FILE 03670912
C***** 03680912
33340 CLOSE(UNIT=KUVI) 03690912
OPEN(FILE=CDIR, UNIT=KUVI, ACCESS='DIRECT',STATUS='OLD', 03700912
1 FORM='FORMATTED',RECL=120) 03710912
C***** 03720912
CT014* TEST 14 - READS RECORD 4 03730912
C***** 03740912
IVTNUM=14 03750912
IVI = 4 03760912
READ(UNIT=KUVI,REC=IVI,FMT=41241,ERR=33350) NVI, EVS, DVD, CVB, 03770912
1 C20VK, FVS, C47VK 03780912
ISWT=6 03790912
GO TO 33250 03800912
03810912
33350 WRITE(NUVI,55010)IVTNUM,REMK4 03820912
IVFAIL=IVFAIL+1 03830912
C***** 03840912
CT015* TEST 15 - READS THE CHANGED RECORD 5 03850912
C***** 03860912
33360 IVTNUM=15 03870912
IVI = 5 03880912
READ(UNIT=KUVI,REC=IVI,FMT=41254,ERR=33370) AVS, KVI, A20VK, 03890912
1 AVD, BVS, AVB, A47VK03900912
41254 FORMAT(F10.5, I5, A20, D14.8, E14.6, L10, A47) 03910912
ISWT=7 03920912
IF (KVI .NE. IVI) GOTO 41221 03930912
IF (AVS .LT. G1S(IVI)-CVS .OR. AVS .GT. G1S(IVI)+CVS) GOTO 4122303940912
IF (BVS.LT.G1S(IVI-1)-CVS .OR. BVS.GT.G1S(IVI-1)+CVS) GOTO 4122503950912
IF (A20VK .NE. B201K(IVI)) GOTO 41229 03960912
IF ((AVB .AND. .NOT. D1B(IVI)) .OR. 03970912
1 (.NOT. AVB .AND. D1B(IVI))) GOTO 41233 03980912
IF (AVD .LT. B1D(IVI)-CVD .OR. AVD .GT. B1D(IVI)+CVD) GOTO 4122703990912
IF (A47VK .NE. 04000912
1 ' STOP RECORD') GOTO 41231 04010912
WRITE(NUVI,80002)IVTNUM 04020912
IVPASS=IVPASS+1 04030912
GO TO 33380 04040912
33370 WRITE(NUVI,55010)IVTNUM,REMK5 04050912
IVFAIL=IVFAIL+1 04060912
C***** 04070912
CT016* TEST 16 - READS RECORD 2 04080912
C***** 04090912
33380 IVTNUM=16 04100912
IVI = 2 04110912
READ(UNIT=KUVI,REC=IVI,FMT=41238,ERR=33390) BVS, AVD, KVI, AVS, 04120912
1 AVB, A20VK, A51VK 04130912
ISWT=8 04140912
GO TO 33230 04150912
04160912
33390 WRITE(NUVI,55010)IVTNUM,REMK2 04170912
IVFAIL=IVFAIL+1 04180912
C***** 04190912
CT017* TEST 17 - READS THE CHANGED RECORD 3 04200912
C***** 04210912
33400 IVTNUM=17 04220912
IVI = 3 04230912
READ(UNIT=KUVI,REC=3,FMT=41256,ERR=33410) KVI, AVS, BVS, AVD, 04240912
1 A20VK, AVB, A47VK 04250912
41256 FORMAT(I5, F11.5, E13.6, D14.8, A20, L10, A47) 04260912
ISWT=9 04270912
IF (KVI .NE. IVI) GOTO 41221 04280912
IF (AVS .LT. G1S(IVI)-CVS .OR. AVS .GT. G1S(IVI)+CVS) GOTO 4122304290912
IF (BVS.LT.G1S(IVI+1)-CVS .OR. BVS.GT.G1S(IVI+1)+CVS) GOTO 4122504300912
IF (A20VK .NE. B201K(IVI)) GOTO 41229 04310912
IF ((AVB .AND. .NOT. D1B(IVI)) .OR. 04320912
1 (.NOT. AVB .AND. D1B(IVI))) GOTO 41233 04330912
IF (AVD .LT. B1D(IVI)-CVD .OR. AVD .GT. B1D(IVI)+CVD) GOTO 4122704340912
IF (A47VK .NE. 04350912
1 ' NEW RECORD ') GOTO 41231 04360912
WRITE(NUVI,80002)IVTNUM 04370912
IVPASS=IVPASS+1 04380912
GO TO 33420 04390912
04400912
33410 WRITE(NUVI,55010)IVTNUM,REMK3 04410912
IVFAIL=IVFAIL+1 04420912
C***** 04430912
CT018* TEST 18 - READS RECORD 1 04440912
C***** 04450912
33420 IVTNUM=18 04460912
IVI = 1 04470912
READ(UNIT=KUVI,REC=IVI,FMT=41210,ERR=33430) KVI, AVS, BVS, AVD, 04480912
1 AVB, A20VK, A47VK 04490912
ISWT=10 04500912
GO TO 33220 04510912
04520912
33430 WRITE(NUVI,55010)IVTNUM,REMK1 04530912
IVFAIL=IVFAIL+1 04540912
C***** 04550912
CT019* TEST 19 - OVERWRITES RECORD 4 04560912
C***** 04570912
33440 IVTNUM=19 04580912
41258 IVI = 4 04590912
KVI = IVI + 1 04600912
AVS = F1S (IVI) 04610912
BVS = F1S(IVI + 1) 04620912
EVS = F1S(IVI) + 2.34 04630912
AVD = D1D (IVI) 04640912
WRITE(UNIT=KUVI,REC=4,FMT=41259,ERR=33450) IVI, KVI, AVS, BVS, 04650912
1 EVS, AVD 04660912
41259 FORMAT(I5, I5.3, F10.5, E14.6, E20.1E4, D14.8) 04670912
WRITE(NUVI,80002)IVTNUM 04680912
IVPASS=IVPASS+1 04690912
GO TO 33460 04700912
04710912
33450 WRITE(NUVI,55010)IVTNUM,REMK4 04720912
IVFAIL=IVFAIL+1 04730912
C***** 04740912
CT020* TEST 20 - OVERWRITES RECORDS 1, 2, AND 3 04750912
C***** 04760912
33460 IVTNUM=20 04770912
IVI = 1 04780912
A1VK = 'A' 04790912
A4VK = A201K (IVI) (1:4) 04800912
AVB = C1B (IVI) 04810912
AVD = D1D (IVI) 04820912
BVD = D1D (IVI) + 3.234D2 04830912
WRITE(UNIT=KUVI,REC=1,FMT=41260,ERR=33470) AVD, BVD, AVB, A1VK, 04840912
1 A4VK 04850912
41260 FORMAT(G14.8, G20.2E4, L2, A, A4, 'TSAL DROCER',//, 04860912
1 "HOLLERITH " , T15, 'ONE', 10X, TL5, 'TWO', TR5, 04870912
2 'THREE', :, 'LAST') 04880912
WRITE(NUVI,80002)IVTNUM 04890912
IVPASS=IVPASS+1 04900912
GO TO 33480 04910912
04920912
33470 WRITE(NUVI,55010)IVTNUM,REMK1 04930912
IVFAIL=IVFAIL+1 04940912
C***** 04950912
CT021* TEST 21 - OVERWRITES RECORD 5 04960912
C***** 04970912
33480 IVTNUM=21 04980912
IVI = 5 04990912
BVS = F1S(IVI - 1) 05000912
AVD = B1D (4) 05010912
WRITE(UNIT=KUVI,REC=5,FMT=41261,ERR=33490) IVI, BVS, IVI, AVD 05020912
41261 FORMAT(SP, I5, S, F10.5, SS, I5, 3PE14.6E2) 05030912
WRITE(NUVI,80002)IVTNUM 05040912
IVPASS=IVPASS+1 05050912
GO TO 33500 05060912
05070912
33490 WRITE(NUVI,55010)IVTNUM,REMK5 05080912
IVFAIL=IVFAIL+1 05090912
C***** 05100912
C***** CLOSE AND REOPEN DIRECT ACCESS FILE 05110912
C***** 05120912
33500 CLOSE(UNIT=KUVI) 05130912
OPEN(FILE=CDIR, UNIT=KUVI, ACCESS='DIRECT',STATUS='OLD', 05140912
1 FORM='FORMATTED',RECL=120) 05150912
C***** 05160912
CT022* TEST 22 - READS RECORD 1 05170912
C***** 05180912
IVTNUM=22 05190912
IVI = 1 05200912
READ(UNIT=KUVI,REC=IVI,FMT=41262,ERR=33510) AVD, A20VK, AVB, 05210912
1 A1VK, A4VK, A12VK 05220912
41262 FORMAT(G14.8, A20, L2, A, A4, A12) 05230912
ISWT=1 05240912
IF (AVD .LT. D1D(IVI)-CVD .OR. AVD .GT. D1D(IVI)+CVD) GOTO 4127705250912
IF (A20VK(12:20) .NE. '.34E+0003') GOTO 41279 05260912
IF ((A1VK .NE. 'A') .OR. 05270912
1 (A4VK .NE. A201K(IVI)(1:4)) .OR. 05280912
2 (A12VK .NE. 'TSAL DROCER')) GOTO 41279 05290912
WRITE(NUVI,80002)IVTNUM 05300912
IVPASS=IVPASS+1 05310912
GO TO 33520 05320912
05330912
33510 WRITE(NUVI,55010)IVTNUM,REMK1 05340912
IVFAIL=IVFAIL+1 05350912
C***** RECORD # 4 05360912
CT023* TEST 23 - READS RECORD 4 05370912
C***** 05380912
33520 IVTNUM=23 05390912
IVI = 4 05400912
READ(UNIT=KUVI,REC=IVI,FMT=41266,ERR=33530) KVI, A20VK, AVS, 05410912
1 BVS, B20VK, AVD 05420912
41266 FORMAT(I5, A5, F10.5, E14.6, A20, D14.8) 05430912
ISWT=2 05440912
IF (A20VK(3:5) .NE. '005') GOTO 41293 05450912
IF ((AVS .LT. F1S(IVI)-CVS .OR. AVS .GT. F1S(IVI)+CVS) .OR. 05460912
1 (BVS.LT.F1S(IVI+1)-CVS .OR. BVS.GT.F1S(IVI+1)+CVS) .OR. 05470912
2 (B20VK(13:20) .NE. '.6E+0001')) GOTO 41293 05480912
WRITE(NUVI,80002)IVTNUM 05490912
IVPASS=IVPASS+1 05500912
GO TO 33540 05510912
05520912
33530 WRITE(NUVI,55010)IVTNUM,REMK4 05530912
IVFAIL=IVFAIL+1 05540912
C***** 05550912
CT024* TEST 24 - READS RECORD 2 TESTS FOR BLANK RECORD 05560912
C***** 05570912
33540 IVTNUM=24 05580912
B120VK = ' ' 05590912
IVI = 2 05600912
READ(UNIT=KUVI,REC=IVI,FMT=41269,ERR=33550) A120VK 05610912
41269 FORMAT(A120) 05620912
ISWT=3 05630912
IF (A120VK .NE. B120VK) GOTO 41281 05640912
WRITE(NUVI,80002)IVTNUM 05650912
IVPASS=IVPASS+1 05660912
GO TO 33560 05670912
05680912
33550 WRITE(NUVI,55010)IVTNUM,REMK2 05690912
IVFAIL=IVFAIL+1 05700912
C***** 05710912
CT025* TEST 25 - READS RECORD 5 05720912
C***** 05730912
33560 IVTNUM=25 05740912
IVI = 5 05750912
READ(UNIT=KUVI,REC=IVI,FMT=41271,ERR=33570) A20VK(1:5), AVS, 05760912
1 B20VK, C20VK 05770912
41271 FORMAT(A5, F10.5, BZ, A5, BN, A20) 05780912
ISWT=4 05790912
IF (A20VK(1:5) .NE. ' +5') GOTO 41283 05800912
IF (B20VK(1:5) .NE. ' 5') GOTO 41285 05810912
IF (C20VK(1:14) .NE. ' 625.0000E-03') GOTO 41287 05820912
WRITE(NUVI,80002)IVTNUM 05830912
IVPASS=IVPASS+1 05840912
GO TO 33580 05850912
05860912
33570 WRITE(NUVI,55010)IVTNUM,REMK5 05870912
IVFAIL=IVFAIL+1 05880912
C***** 05890912
CT026* TEST 26 - READS RECORD 3 05900912
C***** 05910912
33580 IVTNUM=26 05920912
IVI = 3 05930912
READ(UNIT=KUVI,REC=IVI,FMT=41275,ERR=33590) A120VK 05940912
41275 FORMAT(A120) 05950912
ISWT=5 05960912
IF (A120VK(1:10) .NE. 'HOLLERITH') GOTO 41289 05970912
IF (A120VK(11:40) .NE. 05980912
1 ' ONE TWO THREE ') GOTO 41291 05990912
WRITE(NUVI,80002)IVTNUM 06000912
IVPASS=IVPASS+1 06010912
GO TO 33600 06020912
06030912
33590 WRITE(NUVI,55010)IVTNUM,REMK3 06040912
IVFAIL=IVFAIL+1 06050912
C***** 06060912
C***** CLOSE DIRECT ACCESS FILE 06070912
C***** 06080912
33600 CLOSE(UNIT=KUVI,STATUS='DELETE') 06090912
GO TO 33610 06100912
C***** 06110912
C***** CHECKING RECORD 1 06120912
C***** 06130912
33220 IF (KVI .NE. IVI) GOTO 41221 06140912
IF (AVS .LT. F1S(IVI)-CVS .OR. AVS .GT. F1S(IVI)+CVS) GOTO 4122306150912
IF (BVS.LT.F1S(IVI+1)-CVS .OR. BVS.GT.F1S(IVI+1)+CVS) GOTO 4122506160912
IF (A20VK .NE. A201K(IVI)) GOTO 41229 06170912
IF (A47VK .NE. 06180912
1 ' LAST RECORD') GOTO 41231 06190912
IF ((AVB .AND. .NOT. C1B(IVI)) .OR. 06200912
1 (.NOT. AVB .AND. C1B(IVI))) GOTO 41233 06210912
IF (AVD .LT. D1D(IVI)-CVD .OR. AVD .GT. D1D(IVI)+CVD) GOTO 4122706220912
WRITE(NUVI,80002)IVTNUM 06230912
IVPASS=IVPASS+1 06240912
IF (ISWT .EQ. 10)GO TO 33440 06250912
GO TO 33130 06260912
06270912
41221 WRITE(NUVI,41222)IVTNUM,IVI 06280912
IVFAIL=IVFAIL+1 06290912
GO TO (33130,33150,33170,33190,33210,33360,33380,33400, 06300912
1 33420,33440)ISWT 06310912
06320912
41223 WRITE(NUVI,41224)IVTNUM,IVI 06330912
IVFAIL=IVFAIL+1 06340912
GO TO (33130,33150,33170,33190,33210,33360,33380,33400, 06350912
1 33420,33440)ISWT 06360912
06370912
41225 WRITE(NUVI,41226)IVTNUM,IVI 06380912
IVFAIL=IVFAIL+1 06390912
GO TO (33130,33150,33170,33190,33210,33360,33380,33400, 06400912
1 33420,33440)ISWT 06410912
06420912
41227 WRITE(NUVI,41228)IVTNUM,IVI 06430912
IVFAIL=IVFAIL+1 06440912
GO TO (33130,33150,33170,33190,33210,33360,33380,33400, 06450912
1 33420,33440)ISWT 06460912
06470912
41229 WRITE(NUVI,41230)IVTNUM,IVI 06480912
IVFAIL=IVFAIL+1 06490912
GO TO (33130,33150,33170,33190,33210,33360,33380,33400, 06500912
1 33420,33440)ISWT 06510912
06520912
41231 WRITE(NUVI,41232)IVTNUM,IVI 06530912
IVFAIL=IVFAIL+1 06540912
GO TO (33130,33150,33170,33190,33210,33360,33380,33400, 06550912
1 33420,33440)ISWT 06560912
06570912
41233 WRITE(NUVI,41234)IVTNUM,IVI 06580912
IVFAIL=IVFAIL+1 06590912
GO TO (33130,33150,33170,33190,33210,33360,33380,33400, 06600912
1 33420,33440)ISWT 06610912
C***** 06620912
C***** CHECKING RECORD 2 06630912
C***** 06640912
33230 IF (KVI .NE. IVI) GOTO 41221 06650912
IF (AVS .LT. F1S(IVI)-CVS .OR. AVS .GT. F1S(IVI)+CVS) GOTO 4122306660912
IF (BVS.LT.F1S(IVI+1)-CVS .OR. BVS.GT.F1S(IVI+1)+CVS) GOTO 4122506670912
IF (A20VK .NE. A201K(IVI)) GOTO 41229 06680912
IF ((AVB .AND. .NOT. C1B(IVI)) .OR. 06690912
1 (.NOT. AVB .AND. C1B(IVI))) GOTO 41233 06700912
IF (AVD .LT. D1D(IVI)-CVD .OR. AVD .GT. D1D(IVI)+CVD) GOTO 4122706710912
IF (A51VK .NE. 06720912
1 ' LASTS RECORD ')GOTO 41231 06730912
WRITE(NUVI,80002)IVTNUM 06740912
IVPASS=IVPASS+1 06750912
IF (ISWT .EQ. 8)GO TO 33400 06760912
GO TO 33150 06770912
C***** 06780912
C***** CHECKING RECORD 3 06790912
C***** 06800912
33240 IF (LVI .NE. IVI) GOTO 41221 06810912
IF (GVS .LT. F1S(IVI)-CVS .OR. GVS .GT. F1S(IVI)+CVS) GOTO 4122306820912
IF (DVS.LT.F1S(IVI+1)-CVS .OR. DVS.GT.F1S(IVI+1)+CVS) GOTO 4122506830912
IF (B20VK .NE. A201K(IVI)) GOTO 41229 06840912
IF ((BVB .AND. .NOT. C1B(IVI)) .OR. 06850912
1 (.NOT. BVB .AND. C1B(IVI))) GOTO 41233 06860912
IF (BVD .LT. D1D(IVI)-CVD .OR. BVD .GT. D1D(IVI)+CVD) GOTO 4122706870912
IF (B47VK .NE. 06880912
1 ' THE LAST REC ') GOTO 41231 06890912
WRITE(NUVI,80002)IVTNUM 06900912
IVPASS=IVPASS+1 06910912
GO TO 33170 06920912
C***** 06930912
C***** CHECKING RECORD 4 06940912
C***** 06950912
33250 IF (NVI .NE. IVI) GOTO 41221 06960912
IF (EVS .LT. F1S(IVI)-CVS .OR. EVS .GT. F1S(IVI)+CVS) GOTO 4122306970912
IF (FVS.LT.F1S(IVI+1)-CVS .OR. FVS.GT.F1S(IVI+1)+CVS) GOTO 4122506980912
IF (C20VK .NE. A201K(IVI)) GOTO 41229 06990912
IF ((CVB .AND. .NOT. C1B(IVI)) .OR. 07000912
1 (.NOT. CVB .AND. C1B(IVI))) GOTO 41233 07010912
IF (DVD .LT. D1D(IVI)-CVD .OR. DVD .GT. D1D(IVI)+CVD) GOTO 4122707020912
IF (C47VK .NE. 07030912
1 ' NEXT TO LAST') GOTO 41231 07040912
WRITE(NUVI,80002)IVTNUM 07050912
IVPASS=IVPASS+1 07060912
IF (ISWT .EQ. 6)GO TO 33360 07070912
GO TO 33190 07080912
C***** 07090912
C***** CHECKING RECORD 5 07100912
C***** 07110912
33260 IF (KVI .NE. JVI) GOTO 41221 07120912
IF (AVS .LT. F1S(JVI)-CVS .OR. AVS .GT. F1S(JVI)+CVS) GOTO 4122307130912
IF (BVS.LT.F1S(JVI+1)-CVS .OR. BVS.GT.F1S(JVI+1)+CVS) GOTO 4122507140912
IF (A20VK .NE. A201K(JVI)) GOTO 41229 07150912
IF ((AVB .AND. .NOT. C1B(JVI)) .OR. 07160912
1 (.NOT. AVB .AND. C1B(JVI))) GOTO 41233 07170912
IF (AVD .LT. D1D(JVI)-CVD .OR. AVD .GT. D1D(JVI)+CVD) GOTO 4122707180912
IF (A51VK .NE. 07190912
1 ' THE END ') GOTO 4123107200912
WRITE(NUVI,80002)IVTNUM 07210912
IVPASS=IVPASS+1 07220912
GO TO 33210 07230912
C***** 07240912
C***** 07250912
C***** 07260912
41277 WRITE(NUVI,41278)IVTNUM,IVI 07270912
IVFAIL=IVFAIL+1 07280912
GO TO(33520,33540,33560,33580,33600)ISWT 07290912
07300912
41279 WRITE(NUVI,41280)IVTNUM,IVI 07310912
IVFAIL=IVFAIL+1 07320912
GO TO(33520,33540,33560,33580,33600)ISWT 07330912
07340912
41281 WRITE(NUVI,41282)IVTNUM,IVI 07350912
IVFAIL=IVFAIL+1 07360912
GO TO(33520,33540,33560,33580,33600)ISWT 07370912
07380912
41283 WRITE(NUVI,41284)IVTNUM,IVI 07390912
IVFAIL=IVFAIL+1 07400912
GO TO(33520,33540,33560,33580,33600)ISWT 07410912
07420912
41285 WRITE(NUVI,41286)IVTNUM,IVI 07430912
IVFAIL=IVFAIL+1 07440912
GO TO(33520,33540,33560,33580,33600)ISWT 07450912
07460912
41287 WRITE(NUVI,41288)IVTNUM,IVI 07470912
IVFAIL=IVFAIL+1 07480912
GO TO(33520,33540,33560,33580,33600)ISWT 07490912
07500912
41289 WRITE(NUVI,41290)IVTNUM,IVI 07510912
IVFAIL=IVFAIL+1 07520912
GO TO(33520,33540,33560,33580,33600)ISWT 07530912
07540912
41291 WRITE(NUVI,41292)IVTNUM,IVI 07550912
IVFAIL=IVFAIL+1 07560912
GO TO(33520,33540,33560,33580,33600)ISWT 07570912
07580912
41293 WRITE(NUVI,41294)IVTNUM,IVI 07590912
IVFAIL=IVFAIL+1 07600912
GO TO(33520,33540,33560,33580,33600)ISWT 07610912
C***** 07620912
C***** 07630912
C***** 07640912
41222 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07650912
1 " - ON I FORMAT" ) 07660912
41224 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07670912
1 " - ON F FORMAT" ) 07680912
41226 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07690912
1 " - ON E FORMAT" ) 07700912
41228 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07710912
1 " - ON D FORMAT" ) 07720912
41230 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07730912
1 " - ON A FORMAT" ) 07740912
41232 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07750912
1 " - ON X AND ' FORMAT" ) 07760912
41234 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07770912
1 " - ON L FORMAT" ) 07780912
41278 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07790912
1 " - ON GW.D FORMAT" ) 07800912
41280 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07810912
1 " - ON GW.DEN FORMAT" ) 07820912
41282 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07830912
1 " - ON BLANK RECORD " ) 07840912
41284 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07850912
1 " - ON SP FORMAT " ) 07860912
41286 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07870912
1 " - ON BZ OR SS FORMAT" ) 07880912
41288 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07890912
1 " - ON NP FORMAT " ) 07900912
41290 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07910912
1 " - ON H FORMAT " ) 07920912
41292 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07930912
1 " - ON TR, TLC, T FORMAT" ) 07940912
41294 FORMAT(" ","TEST ",I3," FAIL",34X,"RECORD",I2, 07950912
1 " - ON IN.N FORMAT " ) 07960912
C***** 07970912
C***** END OF TEST SEGMENT 412 07980912
C***** 07990912
33610 CONTINUE 08000912
CBB** ********************** BBCSUM0 **********************************08010912
C**** WRITE OUT TEST SUMMARY 08020912
C**** 08030912
IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 08040912
WRITE (I02, 90004) 08050912
WRITE (I02, 90014) 08060912
WRITE (I02, 90004) 08070912
WRITE (I02, 90020) IVPASS 08080912
WRITE (I02, 90022) IVFAIL 08090912
WRITE (I02, 90024) IVDELE 08100912
WRITE (I02, 90026) IVINSP 08110912
WRITE (I02, 90028) IVTOTN, IVTOTL 08120912
CBE** ********************** BBCSUM0 **********************************08130912
CBB** ********************** BBCFOOT0 **********************************08140912
C**** WRITE OUT REPORT FOOTINGS 08150912
C**** 08160912
WRITE (I02,90016) ZPROG, ZPROG 08170912
WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 08180912
WRITE (I02,90019) 08190912
CBE** ********************** BBCFOOT0 **********************************08200912
CBB** ********************** BBCFMT0A **********************************08210912
C**** FORMATS FOR TEST DETAIL LINES 08220912
C**** 08230912
80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 08240912
80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 08250912
80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 08260912
80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 08270912
80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 08280912
1I6,/," ",15X,"CORRECT= " ,I6) 08290912
80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 08300912
1E12.5,/," ",16X,"CORRECT= " ,E12.5) 08310912
80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 08320912
1A21,/," ",16X,"CORRECT= " ,A21) 08330912
80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 08340912
80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 08350912
80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 08360912
80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 08370912
80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 08380912
80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 08390912
80050 FORMAT (" ",48X,A31) 08400912
CBE** ********************** BBCFMT0A **********************************08410912
CBB** ********************** BBCFMAT1 **********************************08420912
C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 08430912
C**** 08440912
80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 08450912
1D17.10,/," ",16X,"CORRECT= " ,D17.10) 08460912
80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 08470912
80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 08480912
80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 08490912
80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 08500912
80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 08510912
80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 08520912
80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 08530912
1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 08540912
2"(",F12.5,", ",F12.5,")") 08550912
CBE** ********************** BBCFMAT1 **********************************08560912
CBB** ********************** BBCFMT0B **********************************08570912
C**** FORMAT STATEMENTS FOR PAGE HEADERS 08580912
C**** 08590912
90002 FORMAT ("1") 08600912
90004 FORMAT (" ") 08610912
90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )08620912
90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 08630912
90008 FORMAT (" ",21X,A13,A17) 08640912
90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 08650912
90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 08660912
90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 08670912
1 7X,"REMARKS",24X) 08680912
90014 FORMAT (" ","----------------------------------------------" , 08690912
1 "---------------------------------" ) 08700912
90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 08710912
C**** 08720912
C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 08730912
C**** 08740912
90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 08750912
90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 08760912
1 A13) 08770912
90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 08780912
C**** 08790912
C**** FORMAT STATEMENTS FOR RUN SUMMARY 08800912
C**** 08810912
90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 08820912
90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 08830912
90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 08840912
90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 08850912
90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 08860912
CBE** ********************** BBCFMT0B **********************************08870912
STOP 08880912
END 08890912
C********************************************************************** 00010913
C***** FORTRAN 77 00020913
C***** FM913 00030913
C***** SN913 FAQ - (807) 00040913
C***** THIS SUBROUTINE IS CALLED BY PROGRAM FM912 00050913
C********************************************************************** 00060913
SUBROUTINE SN913(FW1S, GW1S, CW1B, DW1B, DW1D, BW1D, 00070913
1 A20W1K, B20W1K) 00080913
C***** 00090913
C***** SUBROUTINE USED WITH SEGMENT DIRAF3 (412) TO SUPPLY VALUES 00100913
C***** TO ARRAYS THRU THE DUMMY ARGUMENT LIST 00110913
C***** 00120913
REAL FT1S(5),FW1S(5),GT1S(5),GW1S(5) 00130913
LOGICAL CT1B(5),CW1B(5),DT1B(5),DW1B(5) 00140913
DOUBLE PRECISION DT1D(5),DW1D(5),BT1D(5),BW1D(5) 00150913
CHARACTER*20 A20T1K(5),A20W1K(5),B20T1K(5),B20W1K(5) 00160913
DATA FT1S /1.0, 2.0, 3.0, 4.0, 5.0/ 00170913
DATA GT1S /1.2, 2.3, 3.5, 4.45, 45.0/ 00180913
DATA A20T1K / 'AAAALKJHGFASERTYUIOP', 'KDJFLKJEOITMNV E CJF', 00190913
1 'CDFEJHFKLM CNB FHGDC', 'LKJHNHBJMVK,FIJ NVHD', 00200913
2 'JHGFKDJJSLDKFJDKJFSL'/ 00210913
DATA B20T1K / 'AAAALSDEFCASERTYUIOP', 'KDDFFEJEOITMNV E CJF', 00220913
1 'CDFEJHFKLM DHGDC', 'L...NHBJMVK,FIJ NVHD', 00230913
2 'LKJHDNMVHNEUYHBDGHCJ'/ 00240913
DATA CT1B /.TRUE., .FALSE., .TRUE., .TRUE., .FALSE./ 00250913
DATA DT1B /.FALSE., .TRUE., .FALSE., .TRUE., .TRUE./ 00260913
DATA DT1D /1.23D1, 2.34D1, 3.45D3, 5.602D3, 5.602D0/ 00270913
DATA BT1D /23.1D1, 34.1D1, 23.45D3, .625D0, 109.384D0/ 00280913
C***** 00290913
C***** 00300913
C***** 00310913
DO 1 IVI = 1, 5 00320913
FW1S(IVI) = FT1S(IVI) 00330913
GW1S(IVI) = GT1S(IVI) 00340913
CW1B(IVI) = CT1B(IVI) 00350913
DW1B(IVI) = DT1B(IVI) 00360913
DW1D(IVI) = DT1D(IVI) 00370913
BW1D(IVI) = BT1D(IVI) 00380913
A20W1K(IVI) = A20T1K(IVI) 00390913
B20W1K(IVI) = B20T1K(IVI) 00400913
1 CONTINUE 00410913
C***** 00420913
C***** 00430913
C***** 00440913
RETURN 00450913
END 00460913