      subroutine dimic
      use module
      implicit real(8) (a-h,o-x,z),logical(y)
      integer(8) n,nn,nbtp,nvirt_8,ninac_8
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Dimension de l'IC sans selection
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
      call titre('Dimension de l''IC sans selection# (non SEL'
     *//', toutes orbitales liees)#',40)
      nvirt_8=nvirt
      ninac_8=ninac
      n=0
      do nt=0,2
         do np=0,2
            if(igener==1) then
               if(nt>1.or.np>1) exit
            else
               if(nt+np>igener) exit
            endif
            nn=0
            do nta=0,nt
               ntb=nt-nta
               do npa=0,np
                  npb=np-npa
                  call ntp(nta,npa,ntb,npb,nbtp,nvirt_8,ninac_8)
                  na=1
                  nb=1
                  if(nocac0-npa+nta<0.or.nocac0-npa+nta>noac) na=0
                  if(nocbc0-npb+ntb<0.or.nocbc0-npb+ntb>noac) nb=0
                  if(nocac0-npa+nta>0.and.nocac0-npa+nta<noac)
     *            na=c(noac,nocac0-npa+nta)
                  if(nocbc0-npb+ntb>0.and.nocbc0-npb+ntb<noac)
     *            nb=c(noac,nocbc0-npb+ntb)
                  nn=nn+na*nb*nbtp
               enddo
            enddo
            if(nn>0) then
               write(75,*)'nt=',nt,' np=',np,' : ',nn,' det$'
               call scril
               n=n+nn
            endif
         enddo
      enddo
      write(75,*)'nombre de determinants sans selection :',n,'$'
      call scril
      return
      end
    
       subroutine ntp(nta,npa,ntb,npb,nbtp,nvirt_8,ninac_8)
      use module
      integer(8) nbtp,ntta,nttb,nppa,nppb,k,nvirt_8,ninac_8
      num1_8(k)=(k-1)*(k-2)/2
      nbtp=1
      if(nta==2) then
         ntta=num1_8(ninac_8+1)
      else if(nta==1) then
         ntta=ninac_8
      else
         ntta=1
      endif
      if(ntb==2) then
         nttb=num1_8(ninac_8+1)
      else if(ntb==1) then
         nttb=ninac_8
      else
         nttb=1
      endif
      if(npa==2) then
         nppa=num1_8(nvirt_8+1)
      else if(npa==1) then
         nppa=nvirt_8
      else
         nppa=1
      endif
      if(npb==2) then
         nppb=num1_8(nvirt_8+1)
      else if(npb==1) then
         nppb=nvirt_8
      else
         nppb=1
      endif
      !print*,'ntta,nttb,nppa,nppb',ntta,nttb,nppa,nppb
      nbtp=ntta*nttb*nppa*nppb
      return
      end

