C   Copyright 1999 by Aaron Robertson

       PROGRAM DIFFFREE
 
       IMPLICIT NONE
       
       INTEGER*2  K,L,MAXLENGTH
       INTEGER*4  NUMBSURV

C   CHECK FOR K-DIFFERENCE and L-DIFFERENCE SETS
C   IF WE PARTITION [N] into these then R(K+1,L+1) >=N+2
C   THIS VERSION, ONLY K CAN EQUAL 2 (Both 2 => R(3,3)>5)

        PARAMETER (K=5, L=6,NUMBSURV=50000, MAXLENGTH=65)

        INTEGER*2  ADDPOINT,FILENUM,FLAG,FLAG2,FLAG4,T
        INTEGER*2  I,SR,I1,I2,I3,I4,I5,I6,I7,I8,I9,NOGOODK,NOGOODL
        INTEGER*4  NUMSURVIVORS,NUMPREADD,D,J
        INTEGER*2  TEMPSET(MAXLENGTH) 
        INTEGER*2  TEMPK(K-1),TEMPL(L-1),T1(11),ML(6)
        INTEGER*2  SIZERAYPA(2,NUMBSURV),SIZERAYSURV(2,NUMBSURV)
        INTEGER*2  PREADD(2,MAXLENGTH,NUMBSURV)
        INTEGER*2  SURVIVORS(2,MAXLENGTH,NUMBSURV)
        INTEGER*2  DIFFCHECK
 
        FILENUM=6799
 
 

        DO I=1,2
             DO J=1,NUMBSURV
        	        SIZERAYPA(I,J)=0
      	        SIZERAYSURV(I,J)=0	
	     END DO
        END DO
 
        IF (K.EQ.L) THEN
          ADDPOINT=1
          SIZERAYPA(1,1)=1
          PREADD(1,1,1)=1
        ELSE
        ADDPOINT=0
        END IF
  
        FLAG=0
      
       NUMPREADD=1
       NUMSURVIVORS=0   
        DO WHILE(FLAG.EQ.0)
       
	        ADDPOINT=ADDPOINT+1 
           WRITE(FILENUM,*) 'ADDING THE DIFFERENCE' , ADDPOINT
           WRITE(FILENUM,*) 'NUM SURVIVORS' , NUMPREADD 
           FLAG2=0
 	      J= 1
 	      DO  WHILE(J.LT.NUMPREADD+1.AND.FLAG2.EQ.0)
  
             IF (K.EQ.2) THEN
                SR=SIZERAYPA(1,J)
                DO T=1,SIZERAYPA(1,J)
                   TEMPSET(T)=PREADD(1,T,J)
                END DO
                FLAG4=0
                      DO I1=1,SR
                           TEMPK(1)=PREADD(1,I1,J)

        IF (DIFFCHECK(TEMPK,TEMPSET,SIZERAYPA(1,J),K,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0
                                          END IF
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODK=1
                      ELSE
                           NOGOODK=0
                      END IF
                 ELSE IF (K.EQ.3) THEN
                      SR=SIZERAYPA(1,J)
                      DO T=1,SIZERAYPA(1,J)
                           TEMPSET(T)=PREADD(1,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-1
                           TEMPK(1)=PREADD(1,I1,J)
                           DO I2=I1+1,SR
                                TEMPK(2)=PREADD(1,I2,J)


        IF (DIFFCHECK(TEMPK,TEMPSET,SIZERAYPA(1,J),K,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0


                                          END IF
              
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODK=1
                      ELSE
                           NOGOODK=0
                      END IF

                 ELSE IF (K.EQ.4) THEN
                      SR=SIZERAYPA(1,J)
                      DO T=1,SIZERAYPA(1,J)
                           TEMPSET(T)=PREADD(1,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-2
                           TEMPK(1)=PREADD(1,I1,J)
                           DO I2=I1+1,SR-1
                                TEMPK(2)=PREADD(1,I2,J)
                                DO I3=I2+1,SR
                                     TEMPK(3)=PREADD(1,I3,J)


        IF (DIFFCHECK(TEMPK,TEMPSET,SIZERAYPA(1,J),K,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0
                                          END IF
              
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODK=1
                      ELSE
                           NOGOODK=0
                      END IF

                 ELSE IF (K.EQ.5) THEN
                      SR=SIZERAYPA(1,J)
                      DO T=1,SIZERAYPA(1,J)
                           TEMPSET(T)=PREADD(1,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-3
                           TEMPK(1)=PREADD(1,I1,J)
                           DO I2=I1+1,SR-2
                                TEMPK(2)=PREADD(1,I2,J)
                                DO I3=I2+1,SR-1
                                     TEMPK(3)=PREADD(1,I3,J)
                                     DO I4=I3+1,SR
                                          TEMPK(4)=PREADD(1,I4,J)

        IF (DIFFCHECK(TEMPK,TEMPSET,SIZERAYPA(1,J),K,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0

                                               SR=0

                                          END IF
              
                                     END DO
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODK=1
                      ELSE
                           NOGOODK=0
                      END IF
                                     
                 ELSE IF (K.EQ.6) THEN
                      SR=SIZERAYPA(1,J)
                      DO T=1,SIZERAYPA(1,J)
                           TEMPSET(T)=PREADD(1,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-4
                           TEMPK(1)=PREADD(1,I1,J)
                           DO I2=I1+1,SR-3
                                TEMPK(2)=PREADD(1,I2,J)
                                DO I3=I2+1,SR-2
                                     TEMPK(3)=PREADD(1,I3,J)
                                     DO I4=I3+1,SR-1
                                          TEMPK(4)=PREADD(1,I4,J)
                                     DO I5=I4+1,SR
                                          TEMPK(5)=PREADD(1,I5,J)

        IF (DIFFCHECK(TEMPK,TEMPSET,SIZERAYPA(1,J),K,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0
                                          END IF
                                     END DO
                                     END DO
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODK=1
                      ELSE
                           NOGOODK=0
                      END IF
                      

                 ELSE IF (K.EQ.7) THEN
                      SR=SIZERAYPA(1,J)
                      DO T=1,SIZERAYPA(1,J)   
                        TEMPSET(T)=PREADD(1,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-5
                           TEMPK(1)=PREADD(1,I1,J)
                           DO I2=I1+1,SR-4
                                TEMPK(2)=PREADD(1,I2,J)
                                DO I3=I2+1,SR-3
                                     TEMPK(3)=PREADD(1,I3,J)
                                     DO I4=I3+1,SR-2
                                          TEMPK(4)=PREADD(1,I4,J)
                                     DO I5=I4+1,SR-1
                                          TEMPK(5)=PREADD(1,I5,J)
                                     DO I6=I5+1,SR
                                          TEMPK(6)=PREADD(1,I6,J)

        IF (DIFFCHECK(TEMPK,TEMPSET,SIZERAYPA(1,J),K,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0


                                          END IF
                                     END DO
                                     END DO
                                     END DO
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODK=1
                      ELSE
                           NOGOODK=0
                      END IF
 

                 ELSE IF (K.EQ.8) THEN
                      SR=SIZERAYPA(1,J)
                      DO T=1,SIZERAYPA(1,J)
                           TEMPSET(T)=PREADD(1,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-6
                           TEMPK(1)=PREADD(1,I1,J)
                           DO I2=I1+1,SR-5
                                TEMPK(2)=PREADD(1,I2,J)
                                DO I3=I2+1,SR-4
                                     TEMPK(3)=PREADD(1,I3,J)
                                     DO I4=I3+1,SR-3
                                          TEMPK(4)=PREADD(1,I4,J)
                                     DO I5=I4+1,SR-2
                                          TEMPK(5)=PREADD(1,I5,J)
                                     DO I6=I5+1,SR-1
                                          TEMPK(6)=PREADD(1,I6,J)
                                     DO I7=I6+1,SR
                                          TEMPK(7)=PREADD(1,I7,J)

        IF (DIFFCHECK(TEMPK,TEMPSET,SIZERAYPA(1,J),K,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0
                                          END IF
                                     END DO
                                     END DO
                                     END DO
                                     END DO
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODK=1
                      ELSE
                           NOGOODK=0
                      END IF
 

                 ELSE IF (K.EQ.9) THEN
                      SR=SIZERAYPA(1,J)
                      DO T=1,SIZERAYPA(1,J)
                           TEMPSET(T)=PREADD(1,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-7
                           TEMPK(1)=PREADD(1,I1,J)
                           DO I2=I1+1,SR-6
                                TEMPK(2)=PREADD(1,I2,J)
                                DO I3=I2+1,SR-5
                                     TEMPK(3)=PREADD(1,I3,J)
                                     DO I4=I3+1,SR-4
                                          TEMPK(4)=PREADD(1,I4,J)
                                     DO I5=I4+1,SR-3
                                          TEMPK(5)=PREADD(1,I5,J)
                                     DO I6=I5+1,SR-2
                                          TEMPK(6)=PREADD(1,I6,J)
                                     DO I7=I6+1,SR-1
                                          TEMPK(7)=PREADD(1,I7,J)
                                     DO I8=I7+1,SR
                                          TEMPK(8)=PREADD(1,I8,J)

        IF (DIFFCHECK(TEMPK,TEMPSET,SIZERAYPA(1,J),K,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0
                                          END IF
                                     END DO
                                     END DO
                                     END DO
                                     END DO
                                     END DO
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODK=1
                      ELSE
                           NOGOODK=0
                      END IF


                 ELSE IF (K.EQ.10) THEN
                      SR=SIZERAYPA(1,J)
                      DO T=1,SIZERAYPA(1,J)
                           TEMPSET(T)=PREADD(1,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-8
                           TEMPK(1)=PREADD(1,I1,J)
                           DO I2=I1+1,SR-7
                                TEMPK(2)=PREADD(1,I2,J)
                                DO I3=I2+1,SR-6
                                     TEMPK(3)=PREADD(1,I3,J)
                                     DO I4=I3+1,SR-5
                                          TEMPK(4)=PREADD(1,I4,J)
                                     DO I5=I4+1,SR-4
                                          TEMPK(5)=PREADD(1,I5,J)
                                     DO I6=I5+1,SR-3
                                          TEMPK(6)=PREADD(1,I6,J)
                                     DO I7=I6+1,SR-2
                                          TEMPK(7)=PREADD(1,I7,J)
                                     DO I8=I7+1,SR-1
                                          TEMPK(8)=PREADD(1,I8,J)
                                     DO I9=I8+1,SR
                                         TEMPK(9)=PREADD(1,I9,J)

        IF (DIFFCHECK(TEMPK,TEMPSET,SIZERAYPA(1,J),K,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0
                                          END IF
                                     END DO
                                     END DO
                                     END DO
                                     END DO
                                     END DO
                                     END DO
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODK=1
                      ELSE
                           NOGOODK=0
                      END IF
                         
                 END IF 
                 IF (L.EQ.3) THEN
                      SR=SIZERAYPA(2,J)
                      DO T=1,SIZERAYPA(2,J)
                           TEMPSET(T)=PREADD(2,T,J)
                      END DO
                      FLAG4=0
                      
                      DO I1=1,SR-1
                           TEMPL(1)=PREADD(2,I1,J)
                             DO I2=I1+1,SR
                                TEMPL(2)=PREADD(2,I2,J)
        
         IF (DIFFCHECK(TEMPL,TEMPSET,SIZERAYPA(2,J),L,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0
                                          END IF
                         END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODL=1
                      ELSE
                           NOGOODL=0
                      END IF

                 ELSE IF (L.EQ.4) THEN
                      SR=SIZERAYPA(2,J)
                      DO T=1,SIZERAYPA(2,J)
                           TEMPSET(T)=PREADD(2,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-2
                           TEMPL(1)=PREADD(2,I1,J)
                           DO I2=I1+1,SR-1
                                TEMPL(2)=PREADD(2,I2,J)
                                DO I3=I2+1,SR
                                     TEMPL(3)=PREADD(2,I3,J)


        IF (DIFFCHECK(TEMPL,TEMPSET,SIZERAYPA(2,J),L,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0
                                          END IF
              
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODL=1
                      ELSE
                           NOGOODL=0
                      END IF
                 ELSE IF (L.EQ.5) THEN
                      SR=SIZERAYPA(2,J)
                      DO T=1,SIZERAYPA(2,J)
                           TEMPSET(T)=PREADD(2,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-3
                           TEMPL(1)=PREADD(2,I1,J)
                           DO I2=I1+1,SR-2
                                TEMPL(2)=PREADD(2,I2,J)
                                DO I3=I2+1,SR-1
                                     TEMPL(3)=PREADD(2,I3,J)
                                     DO I4=I3+1,SR
                                          TEMPL(4)=PREADD(2,I4,J)

        IF (DIFFCHECK(TEMPL,TEMPSET,SIZERAYPA(2,J),L,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0


                                          END IF
              
                                   END DO
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODL=1
                      ELSE
                           NOGOODL=0
                      END IF
                    
                 ELSE IF (L.EQ.6) THEN
                      SR=SIZERAYPA(2,J)
                      DO T=1,SIZERAYPA(2,J)
                           TEMPSET(T)=PREADD(2,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-4
                           TEMPL(1)=PREADD(2,I1,J)
                           DO I2=I1+1,SR-3
                                TEMPL(2)=PREADD(2,I2,J)
                                DO I3=I2+1,SR-2
                                     TEMPL(3)=PREADD(2,I3,J)
                                     DO I4=I3+1,SR-1
                                          TEMPL(4)=PREADD(2,I4,J)
                                     DO I5=I4+1,SR
                                          TEMPL(5)=PREADD(2,I5,J)

        IF (DIFFCHECK(TEMPL,TEMPSET,SIZERAYPA(2,J),L,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0


                                          END IF
                                     END DO
                                     END DO
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODL=1
                      ELSE
                           NOGOODL=0
                      END IF
                      

                 ELSE IF (L.EQ.7) THEN
                      SR=SIZERAYPA(2,J)
                      DO T=1,SIZERAYPA(2,J)
                           TEMPSET(T)=PREADD(2,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-5
                           TEMPL(1)=PREADD(2,I1,J)
                           DO I2=I1+1,SR-4
                                TEMPL(2)=PREADD(2,I2,J)
                                DO I3=I2+1,SR-3
                                     TEMPL(3)=PREADD(2,I3,J)
                                     DO I4=I3+1,SR-2
                                          TEMPL(4)=PREADD(2,I4,J)
                                     DO I5=I4+1,SR-1
                                          TEMPL(5)=PREADD(2,I5,J)
                                     DO I6=I5+1,SR
                                          TEMPL(6)=PREADD(2,I6,J)

        IF (DIFFCHECK(TEMPL,TEMPSET,SIZERAYPA(2,J),L,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0
                                          END IF
                                     END DO
                                     END DO
                                     END DO
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODL=1
                      ELSE
                           NOGOODL=0
                      END IF
 
                 ELSE IF (L.EQ.8) THEN
                      SR=SIZERAYPA(2,J)
                      DO T=1,SIZERAYPA(2,J)
                           TEMPSET(T)=PREADD(2,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-6
                           TEMPL(1)=PREADD(2,I1,J)
                           DO I2=I1+1,SR-5
                                TEMPL(2)=PREADD(2,I2,J)
                                DO I3=I2+1,SR-4
                                     TEMPL(3)=PREADD(2,I3,J)
                                     DO I4=I3+1,SR-3
                                          TEMPL(4)=PREADD(2,I4,J)
                                     DO I5=I4+1,SR-2
                                          TEMPL(5)=PREADD(2,I5,J)
                                     DO I6=I5+1,SR-1
                                          TEMPL(6)=PREADD(2,I6,J)
                                     DO I7=I6+1,SR
                                          TEMPL(7)=PREADD(2,I7,J)

        IF (DIFFCHECK(TEMPL,TEMPSET,SIZERAYPA(2,J),L,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0
                                          END IF
                                     END DO
                                     END DO
                                     END DO
                                     END DO
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODL=1
                      ELSE             
                           NOGOODL=0
                      END IF
 

                 ELSE IF (L.EQ.9) THEN
                      SR=SIZERAYPA(2,J)
                      DO T=1,SIZERAYPA(2,J)
                           TEMPSET(T)=PREADD(2,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-7
                           TEMPL(1)=PREADD(2,I1,J)
                           DO I2=I1+1,SR-6
                                TEMPL(2)=PREADD(2,I2,J)
                                DO I3=I2+1,SR-5
                                     TEMPL(3)=PREADD(2,I3,J)
                                     DO I4=I3+1,SR-4
                                          TEMPL(4)=PREADD(2,I4,J)
                                     DO I5=I4+1,SR-3
                                          TEMPL(5)=PREADD(2,I5,J)
                                     DO I6=I5+1,SR-2
                                          TEMPL(6)=PREADD(2,I6,J)
                                     DO I7=I6+1,SR-1
                                          TEMPL(7)=PREADD(2,I7,J)
                                     DO I8=I7+1,SR
                                          TEMPL(8)=PREADD(2,I8,J)

        IF (DIFFCHECK(TEMPL,TEMPSET,SIZERAYPA(2,J),L,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0
                                          END IF
                                     END DO
                                     END DO
                                     END DO
                                     END DO
                                     END DO
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODL=1
                      ELSE
                           NOGOODL=0
                      END IF


                 ELSE IF (L.EQ.10) THEN
                      SR=SIZERAYPA(2,J)
                      DO T=1,SIZERAYPA(2,J)
                           TEMPSET(T)=PREADD(2,T,J)
                      END DO
                      FLAG4=0

                      DO I1=1,SR-8
                           TEMPL(1)=PREADD(2,I1,J)
                           DO I2=I1+1,SR-7
                                TEMPL(2)=PREADD(2,I2,J)
                                DO I3=I2+1,SR-6
                                     TEMPL(3)=PREADD(2,I3,J)
                                     DO I4=I3+1,SR-5
                                          TEMPL(4)=PREADD(2,I4,J)
                                     DO I5=I4+1,SR-4
                                          TEMPL(5)=PREADD(2,I5,J)
                                     DO I6=I5+1,SR-3
                                          TEMPL(6)=PREADD(2,I6,J)
                                     DO I7=I6+1,SR-2
                                          TEMPL(7)=PREADD(2,I7,J)
                                     DO I8=I7+1,SR-1
                                          TEMPL(8)=PREADD(2,I8,J)
                                     DO I9=I8+1,SR
                                          TEMPL(9)=PREADD(2,I9,J)

        IF (DIFFCHECK(TEMPL,TEMPSET,SIZERAYPA(2,J),L,ADDPOINT,T1,ML).
     *EQ.0) THEN
                                              FLAG4=1
                                              SR=0

                                          END IF
                                     END DO
                                     END DO
                                     END DO
                                     END DO
                                     END DO
                                     END DO
                                END DO
                           END DO
                      END DO
            
                      IF (FLAG4.EQ.1) THEN
                           NOGOODL=1
                      ELSE
                           NOGOODL=0
                      END IF
                         
                 END IF 
                            
            
        IF(NUMSURVIVORS.LT.NUMBSURV-1) THEN
            IF(NOGOODK.EQ.0.AND.NOGOODL.EQ.0) THEN
                 NUMSURVIVORS=NUMSURVIVORS+2

                 DO T=1,SIZERAYPA(1,J)
                   SURVIVORS(1,T,NUMSURVIVORS-1)=PREADD(1,T,J)
                 END DO
                   SURVIVORS(1,SIZERAYPA(1,J)+1,NUMSURVIVORS-1)=ADDPOINT
                   SIZERAYSURV(1,NUMSURVIVORS-1)=SIZERAYPA(1,J)+1

                 DO T=1,SIZERAYPA(2,J)
                   SURVIVORS(2,T,NUMSURVIVORS-1)=PREADD(2,T,J)
                 END DO  
                   SIZERAYSURV(2,NUMSURVIVORS-1)=SIZERAYPA(2,J)   

        
                 DO T=1,SIZERAYPA(1,J)
                   SURVIVORS(1,T,NUMSURVIVORS)=PREADD(1,T,J)
                 END DO
                   SIZERAYSURV(1,NUMSURVIVORS)=SIZERAYPA(1,J)

                 DO T=1,SIZERAYPA(2,J)
                   SURVIVORS(2,T,NUMSURVIVORS)=PREADD(2,T,J)
                 END DO
                   SURVIVORS(2,SIZERAYPA(2,J)+1,NUMSURVIVORS)=ADDPOINT 
                   SIZERAYSURV(2,NUMSURVIVORS)=SIZERAYPA(2,J)+1

            ELSE IF(NOGOODK.EQ.0.AND.NOGOODL.EQ.1) THEN
                 NUMSURVIVORS=NUMSURVIVORS+1

                 DO T=1,SIZERAYPA(1,J)
                   SURVIVORS(1,T,NUMSURVIVORS)=PREADD(1,T,J)
                 END DO
                   SURVIVORS(1,SIZERAYPA(1,J)+1,NUMSURVIVORS)=ADDPOINT
                   SIZERAYSURV(1,NUMSURVIVORS)=SIZERAYPA(1,J)+1

                 DO T=1,SIZERAYPA(2,J)
                   SURVIVORS(2,T,NUMSURVIVORS)=PREADD(2,T,J)
                 END DO  
                   SIZERAYSURV(2,NUMSURVIVORS)=SIZERAYPA(2,J) 

            ELSE IF(NOGOODK.EQ.1.AND.NOGOODL.EQ.0) THEN
                 NUMSURVIVORS=NUMSURVIVORS+1

                 DO T=1,SIZERAYPA(1,J)
                   SURVIVORS(1,T,NUMSURVIVORS)=PREADD(1,T,J)
                 END DO
                   SIZERAYSURV(1,NUMSURVIVORS)=SIZERAYPA(1,J)

                 DO T=1,SIZERAYPA(2,J)
                   SURVIVORS(2,T,NUMSURVIVORS)=PREADD(2,T,J)
                 END DO
                   SURVIVORS(2,SIZERAYPA(2,J)+1,NUMSURVIVORS)=ADDPOINT 
                   SIZERAYSURV(2,NUMSURVIVORS)=SIZERAYPA(2,J)+1
 
             END IF
          ELSE
            FLAG2=1
          END IF

          J=J+1
            END DO


        IF (NUMSURVIVORS.EQ.0) THEN
            WRITE(FILENUM,*) 'R(k+1,l+1) >' , ADDPOINT
            WRITE(FILENUM,*) 'NUMBER MAX DIFF-SETS:' , NUMPREADD
           FLAG=1       

            DO D=1,NUMPREADD
            DO I=1,2
              WRITE(FILENUM,*) 'COLOR NUMBER' , I
               DO J=1,SIZERAYPA(I,D)
                 WRITE(FILENUM,*) PREADD(I,J,D)
               END DO
              WRITE(FILENUM,*) ' '
           END DO
           END DO     

 
         ELSE
            DO D=1,NUMSURVIVORS
	         DO I=1,2
	              DO J=1,SIZERAYSURV(I,D)
		           PREADD(I,J,D)=SURVIVORS(I,J,D)
	              END DO
	         END DO
 	    END DO
            DO I=1,2
	         DO J=1,NUMSURVIVORS
		       SIZERAYPA(I,J)=SIZERAYSURV(I,J)
		       SIZERAYSURV(I,J)=0
	         END DO
            END DO

        NUMPREADD=NUMSURVIVORS
        NUMSURVIVORS=0
	
        END IF

        END DO

        STOP
        END


        INTEGER*2 FUNCTION MEMBER(ELT,LST2,LNGTH)

        IMPLICIT NONE

        INTEGER*2 LNGTH,F,ELT,LST2(LNGTH)

        DO F=1,LNGTH
            IF (ELT.EQ.LST2(F)) THEN
	          MEMBER=1
		        RETURN
	          END IF
        END DO

        MEMBER=0

        RETURN
        END


        INTEGER*2 FUNCTION
     *DIFFCHECK(LST,TEMPSET,LNGTH,CLIQUE,APOINT,T1,ML)

        IMPLICIT NONE

        INTEGER*2  LNGTH,TEMPSET(LNGTH),CLIQUE,KL,LST(CLIQUE-1)
        INTEGER*2  I,T,S,TMPSUM,FLAG3,APOINT,ML(6),T1(CLIQUE),MEMBER

        KL=CLIQUE


        DO I=1,KL-1
             T1(I)=LST(I)
        END DO
       
         IF(LNGTH.LT.KL-1) THEN
            DIFFCHECK=1
            RETURN
         END IF

         T1(KL)=APOINT
          FLAG3=0



            T=1
            DO WHILE(FLAG3.EQ.0.AND.T.LT.KL)
                 S=T+1 
                 DO WHILE(FLAG3.EQ.0.AND.S.LT.KL+1)
                    TMPSUM=ABS(T1(S)-T1(T)) 
                    IF (MEMBER(TMPSUM,TEMPSET,LNGTH).EQ.0) THEN
                      FLAG3=1
                    END IF
                 S=S+1 
                 END DO
            T=T+1
            END DO

         IF(FLAG3.EQ.0) THEN
            DIFFCHECK=0
          ELSE
          DIFFCHECK=1
          RETURN
          END IF
          END



