      subroutine maxdetp
c------------------------------------------------------------------
c    Calcul du nombre de determinants par categorie des particules
c
c------------------------------------------------------------------
c    variables locales :
c    norbp   : nb d'orbitales pour les particules
c     is : symetrie du determinant considere
c------------------------------------------------------------------
c    fonction combin = combinaison de x electrons dans y orbitales
c                      renvoie le nb de det.(nt) et le tableau des
c                      differents det.(idet)
c------------------------------------------------------------------
c    sortie : tableau maxp(np,isp,is1,ispp) = nb de det. d'une
c             categorie des particules
c------------------------------------------------------------------
      IMPLICIT REAL*8(A-H,O-X,Z),LOGICAL*1 (Y)
      PARAMETER (maxsym=8,NSPp=3,MNEL=5,maxorbcas=16)
      include 'maxorb.prm'
      common /cs/ noac,nelac,numac(maxorbcas),itype(maxorb),is0,ms2
      common/sy2/nts(maxsym),ncs(maxsym),nps(maxsym)
     *,norbs(maxsym)
      common /prep/ nca0,ncb0,ic0(maxorbcas),icamun(maxorb+maxorb)
     *,numt(maxorb),nump(maxorb),nv
     *,gener,yoc(maxorb+maxorb),yrefc(maxorbcas),yac(maxorb)
     *,ygmono,ygddci,ygddc2,ygcas,ygtous
      character*4 gener
      common/cas_spin/isz0
      common/sym/itsym(2*maxorb),its(maxsym,maxsym),nsym
      common /orb/ enuc,eref,norb,noca,nocb
     *,iorb(2*maxorb),ninac,nvirt,noca0
      common/maxdetpart/maxp(2,maxsym,maxsym,0:1)
      yw=.false.
c     write(6,*)'nps',nps
c-----
      do is1=1,nsym
         do isp=1,nsym
            maxp(1,isp,is1,1)=0
            maxp(2,isp,is1,0)=0
            maxp(2,isp,is1,1)=0
         enddo
      enddo
c----- 1 electron alpha
      do isp=1,nsym
         maxp(1,isp,isp,1)=nps(isp)
      enddo
c----- 2 electrons alpha
      do 1 isp=1,nsym
      do 11 is1=1,nsym
      is2=its(isp,is1)
      if(is1.ne.is2)then
         if(is2.lt.is1) goto 11
         maxp(2,isp,is1,1)=nps(is1)*nps(is2)
      else
         maxp(2,isp,is1,1)=nps(is1)*(nps(is1)-1)/2
      endif
 11   continue
 1    continue
c----- 1 electron alpha et 1 beta
      do 2 isp=1,nsym
      do is1=1,nsym
         is2=its(isp,is1)
         maxp(2,isp,is1,0)=nps(is1)*nps(is2)
      enddo
 2    continue
c     write(6,*)'maxp(1,isp,isp,1)',(maxp(1,isp,isp,1),isp=1,nsym)
      return
      end
