      subroutine clastcp
      use module
      implicit real(8) (a-h,o-x,z),logical(1)(y)
      !
      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      ! Liaisons entre les classes CAS et les classes tp
      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      !
      yw=.false.
      if(yw)print*,'Liaisons entre les classes CAS et les classes tp'
      !
      ! Boucle sur les classes tp
      nc_tp=0
      do i=1,36
         nta=icltp1(1,i)
         ntb=icltp1(2,i)
         npa=icltp1(3,i)
         npb=icltp1(4,i)
         nca=nta-npa
         ncb=ntb-npb
         nt=nta+ntb
         np=npa+npb
         if(igener==1) then
            if(nt>1.or.np>1) cycle
         else
            if(nt+np>igener) cycle
         endif
         ! Boucle sur les classes CAS
         do j=1,nclasc
            if(.not.exist_clasc(j)) cycle
            nca1=iclasc1(1,j)
            ncb1=iclasc1(2,j)
            if(nca==nca1.and.ncb==ncb1) then
               nc_tp(j)=nc_tp(j)+1
               ic_tp(nc_tp(j),j)=i
            endif
         enddo
      enddo
      if(yw) then
         print*,'la classe iclc du CAS est compatible avec les classes'
     *   //'... des TP'
         do j=1,nclasc
            if(.not.exist_clasc(j)) cycle
            print'("ic_tp",i4,2x,6i3)',j,ic_tp(1:nc_tp(j),j)
         enddo
      endif
!      !
      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      ! Dimensions des classes de determinants
      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      !
      if(w2)print*,'Dimensions des classes de determinants'
      if(w2)print*,'nca,ncb,nta,ntb,npa,npb,ifinc(icc)-idebc(icc)+1'
     *//',idimtp(ictp),(ifinc(icc)-idebc(icc)+1)*idimtp(ictp),ictp'
     *//',cumul'
      n=0
      do ictp=1,36
         nta=icltp1(1,ictp)
         npa=icltp1(3,ictp)
         ntb=icltp1(2,ictp)
         npb=icltp1(4,ictp)
         nca1=ms2/2+nta-npa
         ncb1=-(ms2+1)/2+ntb-npb
         if(abs(nca1)>noac) cycle
         if(abs(ncb1)>noac) cycle
         nca=nta-npa
         ncb=ntb-npb
         icc=iclasc(nca,ncb)
         !print'(a,2x,3(2i2,2x),6i8)','classe det',
!     *   nca,ncb,nta,ntb,npa,npb,icc
         if(icc>0) then
            n=n+(ifinc(icc)-idebc(icc)+1)*idimtp(ictp)
            if(w2)print'(a,2x,3(2i2,2x),6i8)','classe det',
     *      nca,ncb,nta,ntb,npa,npb,ifinc(icc)-idebc(icc)+1,idimtp(ictp)
     *      ,(ifinc(icc)-idebc(icc)+1)*idimtp(ictp),ictp,n
         endif
      enddo
      return
      end
