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
