
      INTEGER FUNCTION IDT_IBJQUA(k,Idbamj)
 
C***********************************************************************
C                                                                      *
C     quark contents according to BAMJET conventions                   *
C     (random selection in case of quark mixing)                       *
C                                                                      *
C     input:   IDBAMJ BAMJET particle code                             *
C              K      1..3   quark number                              *
C                                                                      *
C     output:  1   u      7   u bar                                    *
C              2   d      8   d bar                                    *
C              3   s      9   s bar                                    *
C              4   c     10   c bar                                    *
C                                                                      *
C This version written by R. Engel.                                    *
C***********************************************************************
 
      IMPLICIT NONE
      DOUBLE PRECISION DT_RNDM , one
      INTEGER i , id , Idbamj , idold , it , itab , k
      SAVE 
 
      DIMENSION itab(3,210)
Csr 10.1.94
C    &    0,  0,  0,   0,  0,  0,   0,  0,  0,
C
Csr 10.1.94
C    &    3,  7,  0,   0,  0,  0,   0,  0,  0,
Csr 10.1.94
C    &    0,  0,  0,   2,  2,  3,   1,  1,  3,
C
      DATA ((itab(i,k),i=1,3),k=1,30)/1 , 1 , 2 , 7 , 7 , 8 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 2 , 
     &      2 , 7 , 8 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 3 , 8 , 0 , 1 , 8 , 
     &      0 , 2 , 7 , 0 , 1 , 9 , 0 , 3 , 7 , 0 , 3 , 1 , 2 , 9 , 7 , 
     &      8 , 2 , 9 , 0 , 2 , 2 , 3 , 1 , 1 , 3 , 1 , 2 , 3 , 201 , 
     &      202 , 0 , 2 , 9 , 0 , 3 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0/
      DATA ((itab(i,k),i=1,3),k=31,60)/3 , 9 , 0 , 1 , 8 , 0 , 203 , 
     &      204 , 0 , 2 , 7 , 0 , 0 , 0 , 0 , 1 , 9 , 0 , 2 , 9 , 0 , 
     &      3 , 7 , 0 , 3 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      1 , 1 , 1 , 1 , 1 , 2 , 1 , 2 , 2 , 2 , 2 , 2 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0/
      DATA ((itab(i,k),i=1,3),k=61,90)/0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 7 , 7 , 7 , 7 , 7 , 
     &      8 , 7 , 8 , 8 , 8 , 8 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0/
      DATA ((itab(i,k),i=1,3),k=91,120)/0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 3 , 9 , 0 , 1 , 3 , 3 , 2 , 3 , 
     &      3 , 7 , 7 , 9 , 7 , 8 , 9 , 8 , 8 , 9 , 7 , 9 , 9 , 8 , 9 , 
     &      9 , 1 , 1 , 3 , 1 , 2 , 3 , 2 , 2 , 3 , 1 , 3 , 3 , 2 , 3 , 
     &      3 , 3 , 3 , 3 , 7 , 7 , 9 , 7 , 8 , 9 , 8 , 8 , 9 , 7 , 9 , 
     &      9 , 8 , 9 , 9 , 9 , 9 , 9 , 4 , 7 , 0 , 4 , 8 , 0 , 2 , 10 , 
     &      0 , 1 , 10 , 0 , 4 , 9 , 0/
      DATA ((itab(i,k),i=1,3),k=121,150)/3 , 10 , 0 , 4 , 10 , 0 , 4 , 
     &      7 , 0 , 4 , 8 , 0 , 2 , 10 , 0 , 1 , 10 , 0 , 4 , 9 , 0 , 
     &      3 , 10 , 0 , 4 , 10 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 2 , 
     &      4 , 1 , 3 , 4 , 2 , 3 , 4 , 1 , 1 , 4 , 0 , 0 , 0 , 2 , 2 , 
     &      4 , 0 , 0 , 0 , 0 , 0 , 0 , 3 , 3 , 4 , 1 , 4 , 4 , 2 , 4 , 
     &      4 , 3 , 4 , 4 , 7 , 8 , 10 , 7 , 9 , 10/
      DATA ((itab(i,k),i=1,3),k=151,180)/8 , 9 , 10 , 7 , 7 , 10 , 0 , 
     &      0 , 0 , 8 , 8 , 10 , 0 , 0 , 0 , 0 , 0 , 0 , 9 , 9 , 10 , 
     &      7 , 10 , 10 , 8 , 10 , 10 , 9 , 10 , 10 , 1 , 1 , 4 , 1 , 
     &      2 , 4 , 2 , 2 , 4 , 1 , 3 , 4 , 2 , 3 , 4 , 3 , 3 , 4 , 1 , 
     &      4 , 4 , 2 , 4 , 4 , 3 , 4 , 4 , 4 , 4 , 4 , 7 , 7 , 10 , 7 , 
     &      8 , 10 , 8 , 8 , 10 , 7 , 9 , 10 , 8 , 9 , 10 , 9 , 9 , 10 , 
     &      7 , 10 , 10 , 8 , 10 , 10 , 9 , 10 , 10 , 10 , 10 , 10/
      DATA ((itab(i,k),i=1,3),k=181,210)/0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 7 , 0 , 2 , 8 , 0 , 1 , 7 , 
     &      0 , 2 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 
     &      0 , 0 , 0 , 0 , 0 , 0 , 0/
      DATA idold/0/
 
      one = 1.0D0
      IF ( itab(1,Idbamj).LE.200 ) THEN
         id = itab(k,Idbamj)
      ELSE
         IF ( idold.NE.Idbamj ) THEN
            it = INT((itab(2,Idbamj)-itab(1,Idbamj)+0.999999D0)
     &           *DT_RNDM(one)+itab(1,Idbamj))
         ELSE
            idold = 0
         END IF
         id = itab(k,it)
      END IF
      idold = Idbamj
      IDT_IBJQUA = id
 
      END FUNCTION
