C*********************************************************** C THIS SUBROUTINE CHECKS THAT THE CELL PROBABILITIES ARE IN THE C INTERVAL (0,1). IT CHECKS THAT THEY ADD TO 1. IF ANY VALUES C ARE LESS THAN 0.000001D0 A WARNING IS PRINTED, AND THAT CELL C VALUE IS SET TO 0.000001D0. IN CASE ANY CELL VALUES ARE NEGATIVE C THEY ARE SET TO 0.000001D0 C A CHECK IS ALSO MADE FOR VALUES LARGER THAN 1. C IF THE CELL VALUES DO NOT ADD TO 1 THEY ARE NORMALIZED. C*********************************************************** SUBROUTINE CHECK (CELL,K) C*********************************************************************** C DECLARATIONS C*********************************************************************** DOUBLE PRECISION CELL(*), SUM C*********************************************************************** C COMMON STATEMENTS C*********************************************************************** COMMON /ERROR/ IER(4), LER LOGICAL LER DO 10 I=1,K IF (CELL(I).LT.0.000001D0) THEN IER(3)=-1 CELL(I)=0.000001D0 ELSE IF (CELL(I).GT.0.999999D0) THEN IER(3)=-1 CELL(I)=0.999999D0 ENDIF 10 CONTINUE SUM=0.0 DO 20 I=1,K 20 SUM=SUM+CELL(I) TEST=DABS(SUM-1.D0) IF (TEST.LT.0.000001D0) RETURN IER(4)=-1 DO 30 I=1,K 30 CELL(I)=CELL(I)/SUM RETURN END