      subroutine combin(NS1,N,M,NT,MD,ND)
c------------------------------------------------------------------
c     Parametres en sortie :
c     NS1 = vecteur ds lequel sont notes les determinants trouves
c     NT  = nb de determinants
c     Parametres en entree :
c     N   = nb d'orbitales
c     M   = nb d'electrons
c     MD  = nb d'electrons max (=maxelcas)
c     ND  = nb de det. max (=C8 16=12870)
c------------------------------------------------------------------
      INTEGER*4 NS1(MD,ND)
      !write(6,*)'m,n',m,n
      !write(6,*)'md,nd',md,nd
      if(M.eq.0)then
         nt=1
         goto 7
      endif
      I=1
      DO 1 J=1,M
      !print*,j,i,md,nd
1     NS1(j,i)=J
5     CONTINUE
      J1=0
      DO 3 J=1,M
 3    IF(NS1(j,i).EQ.N-M+J) J1=J1+1
      IF(J1.EQ.M) GOTO 4
      I=I+1
      DO 2 J=1,M
2     NS1(j,i)=NS1(j,I-1)
      NS1(m-j1,I)=NS1(m-j1,I-1)+1
      IF(J1.EQ.0) GOTO 5
      MMJ1=M-J1+1
      DO 6 J=MMJ1,M
6     NS1(j,I)=NS1(j-1,I)+1
      GOTO 5
4     CONTINUE
      NT=I
7     continue
      RETURN
      END
