SUBROUTINE C7(START,LENTH,NN,LENA,LB,IER) c ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c c This is a check routine for Benchmark 7. All it will do is verify c that the solutions found are the ones expected from previous runs. c c Parameters: c c Provided by calling routine: c START = Array holding the starting position of each c solution in the E string c LENTH = Array holding the length of each solution c NN = Length of these arrays, i.e. the number of solutions c LENA = Number of 64-bit words in bit stream A c c Returned by this routine: c LB = Length of E stream c IER = Error flag array c IER(1) = Error code c IER(2) = Value related to error code c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c IMPLICIT INTEGER (A-Z) c DIMENSION START(1), LENTH(1) c c Error flag array INTEGER IER(2) C--CVS variable declaration TYPE CVS sequence character( 160 ) string integer stringend END TYPE CVS C--CVS initilaize variables TYPE( CVS ),save :: CVS_INFO = $ CVS("BMARKGRP $Date: 2005/01/10 20:45:00 $ $Revision: 1.2 $" // $ "$RCSfile: c7.f,v $ $Name: rel_5 $", 0) c c Correct solutions PARAMETER (CN = 336) DIMENSION CST(CN), CLEN(CN) DATA CST/1999973, 2291638, 3999972, 4583303, $ 329679971, 329971637, 331679973, 332263302, $ 657359970, 657651637, 659359973, 659943303, $ 985039971, 985331638, 987039972, 987623300, $ 1312719971, 1313011637, 1314719971, 1315303300, $ 1640399973, 1640691635, 1642399973, 1642983303, $ 1968079971, 1968371637, 1970079970, 1970663303, $ 2295759971, 2296051637, 2297759972, 2298343303, $ 2623439969, 2623731637, 2625439973, 2626023302, $ 2951119971, 2951411637, 2953119973, 2953703303, $ 3278799971, 3279091634, 3280799973, 3281383299, $ 3606479970, 3606771638, 3608479969, 3609063303, $ 3934159971, 3934451638, 3936159973, 3936743303, $ 4261839973, 4262131638, 4263839973, 4264423302, $ 4589519973, 4589811638, 4591519973, 4592103303, $ 4917199970, 4917491637, 4919199973, 4919783303, $ 5244879973, 5245171638, 5246879972, 5247463299, $ 5572559973, 5572851638, 5574559972, 5575143303, $ 5900239973, 5900531638, 5902239973, 5902823303, $ 6227919971, 6228211636, 6229919972, 6230503303, $ 6555599969, 6555891638, 6557599972, 6558183302, $ 6883279973, 6883571638, 6885279972, 6885863303, $ 7210959971, 7211251634, 7212959971, 7213543303, $ 7538639973, 7538931636, 7540639973, 7541223303, $ 7866319973, 7866611638, 7868319970, 7868903303, $ 8193999967, 8194291635, 8195999971, 8196583303, $ 8521679973, 8521971638, 8523679972, 8524263302, $ 8849359973, 8849651637, 8851359973, 8851943303, $ 9177039971, 9177331638, 9179039971, 9179623303, $ 9504719970, 9505011638, 9506719973, 9507303299, $ 9832399973, 9832691638, 9834399972, 9834983303, $ 10160079973, 10160371636, 10162079970, 10162663301, $ 10487759969, 10488051637, 10489759970, 10490343303, $ 10815439973, 10815731637, 10817439972, 10818023303, $ 11143119973, 11143411638, 11145119972, 11145703300, $ 11470799973, 11471091637, 11472799972, 11473383303, $ 11798479971, 11798771634, 11800479972, 11801063301, $ 12126159971, 12126451638, 12128159973, 12128743302, $ 12453839971, 12454131638, 12455839971, 12456423303, $ 12781519973, 12781811638, 12783519973, 12784103302, $ 13109199970, 13109491637, 13111199973, 13111783302, $ 13436879969, 13437171637, 13438879971, 13439463301, $ 13764559970, 13764851638, 13766559973, 13767143302, $ 14092239973, 14092531636, 14094239970, 14094823303, $ 14419919973, 14420211638, 14421919972, 14422503303, $ 14747599973, 14747891637, 14749599970, 14750183303, $ 15075279973, 15075571638, 15077279973, 15077863303, $ 15402959970, 15403251637, 15404959973, 15405543302, $ 15730639971, 15730931638, 15732639971, 15733223303, $ 16058319969, 16058611638, 16060319973, 16060903302, $ 16385999973, 16386291637, 16387999973, 16388583303, $ 16713679970, 16713971638, 16715679972, 16716263303, $ 17041359971, 17041651637, 17043359972, 17043943298, $ 17369039969, 17369331638, 17371039973, 17371623303, $ 17696719973, 17697011638, 17698719973, 17699303303, $ 18024399973, 18024691638, 18026399973, 18026983303, $ 18352079969, 18352371638, 18354079973, 18354663303, $ 18679759973, 18680051634, 18681759973, 18682343302, $ 19007439971, 19007731636, 19009439973, 19010023303, $ 19335119973, 19335411637, 19337119970, 19337703302, $ 19662799970, 19663091638, 19664799973, 19665383303, $ 19990479971, 19990771637, 19992479973, 19993063302, $ 20318159973, 20318451638, 20320159971, 20320743302, $ 20645839973, 20646131638, 20647839970, 20648423297, $ 20973519970, 20973811637, 20975519973, 20976103302, $ 21301199973, 21301491638, 21303199972, 21303783303, $ 21628879970, 21629171636, 21630879973, 21631463303, $ 21956559973, 21956851638, 21958559973, 21959143302, $ 22284239973, 22284531638, 22286239973, 22286823303, $ 22611919973, 22612211638, 22613919972, 22614503301, $ 22939599971, 22939891638, 22941599973, 22942183303, $ 23267279973, 23267571637, 23269279972, 23269863298, $ 23594959971, 23595251638, 23596959972, 23597543301, $ 23922639971, 23922931638, 23924639973, 23925223302, $ 24250319970, 24250611638, 24252319973, 24252903303, $ 24577999971, 24578291636, 24579999973, 24580583300, $ 24905679970, 24905971637, 24907679972, 24908263303, $ 25233359969, 25233651636, 25235359973, 25235943303, $ 25561039973, 25561331636, 25563039973, 25563623301, $ 25888719973, 25889011636, 25890719971, 25891303303, $ 26216399973, 26216691636, 26218399973, 26218983299, $ 26544079973, 26544371638, 26546079973, 26546663300, $ 26871759970, 26872051637, 26873759970, 26874343302, $ 27199439973, 27199731636, 27201439973, 27202023303/ DATA CLEN /510, 512, 508, 509, 510, 509, 507, 509, $ 510, 508, 509, 508, 509, 507, 510, 511, $ 510, 508, 511, 514, 507, 512, 507, 511, $ 509, 508, 511, 509, 510, 509, 508, 510, $ 511, 508, 507, 509, 510, 509, 507, 508, $ 512, 511, 508, 514, 510, 513, 511, 508, $ 512, 507, 509, 508, 510, 510, 507, 509, $ 507, 507, 507, 508, 512, 509, 507, 509, $ 508, 507, 509, 515, 507, 508, 508, 508, $ 507, 507, 509, 509, 509, 514, 508, 508, $ 512, 509, 508, 512, 507, 507, 509, 508, $ 511, 512, 509, 508, 507, 509, 512, 510, $ 507, 507, 510, 508, 515, 510, 509, 509, $ 509, 508, 510, 509, 508, 508, 507, 511, $ 515, 508, 509, 508, 510, 507, 507, 512, $ 507, 507, 509, 511, 509, 509, 512, 512, $ 512, 508, 511, 508, 508, 508, 508, 508, $ 508, 507, 508, 512, 507, 508, 520, 511, $ 509, 512, 508, 510, 512, 507, 508, 512, $ 509, 507, 509, 510, 507, 509, 509, 509, $ 510, 508, 507, 509, 511, 508, 510, 511, $ 515, 507, 507, 512, 507, 511, 512, 508, $ 508, 507, 508, 509, 510, 508, 513, 508, $ 508, 507, 508, 509, 510, 508, 508, 511, $ 512, 507, 510, 508, 511, 507, 509, 509, $ 507, 509, 507, 508, 510, 509, 510, 510, $ 509, 508, 508, 514, 513, 507, 509, 509, $ 507, 508, 507, 508, 508, 508, 515, 510, $ 511, 508, 507, 508, 508, 512, 508, 509, $ 511, 510, 510, 508, 508, 509, 511, 512, $ 510, 508, 509, 511, 509, 508, 511, 510, $ 510, 511, 509, 509, 507, 508, 511, 514, $ 511, 513, 508, 510, 507, 507, 510, 509, $ 511, 509, 507, 509, 510, 508, 508, 510, $ 509, 508, 507, 508, 507, 507, 508, 510, $ 509, 507, 507, 509, 509, 508, 508, 515, $ 509, 507, 509, 510, 510, 512, 508, 509, $ 512, 507, 508, 510, 509, 510, 511, 512, $ 515, 508, 508, 508, 516, 514, 508, 510, $ 507, 511, 507, 510, 510, 509, 509, 511, $ 507, 509, 509, 512, 508, 507, 512, 511, $ 511, 510, 510, 510, 507, 511, 508, 508/ c c Adjust length of stream to that for E stream LW = 5 * LENA / 11 c Number of bits in E stream LB = LW*64 c c Initialize error flag array and error counter IER(1) = 0 IER(2) = 0 ERRCNT = 0 c c Check for correct number of solutions c NSOL = 0 DO 10 I=1,CN IF (LB .GE. CST(I)) THEN NSOL = NSOL+1 ENDIF 10 CONTINUE c IF(NN .NE. NSOL) THEN IER(1) = 1 IER(2) = NSOL RETURN c c Check for correct solutions c ELSE DO 20 I=1,NSOL IF ((START(I) .NE. CST(I)) .OR. $ (LENTH(I) .NE. CLEN(I))) THEN ERRCNT = ERRCNT + 1 ENDIF 20 CONTINUE IF (ERRCNT .GT. 0) THEN IER(1) = 2 IER(2) = ERRCNT ENDIF ENDIF c RETURN END