      subroutine mulcocod_5_2(x,i,y,j,aa1,aa2,i1,j3)
      use module
      use mod_ena
      use mod_ena2
      use mod_ena
      use mod_mula
      use mod_itp
      IMPLICIT REAL(8)(A-H,O-X,Z),logical(1)(y)
      integer i,x1,y1,j,i1,x,y,j3,a,b,bb,a1,b1
      integer,allocatable,dimension(:) :: idetc1,idetc2,isgnc
      dimension ntp(0:10),aal(2),isec1(2),isec2(2)
      character(31) elmat(27)
      !On va rajouter deux particules a et b et un trou k
      !det1 jk--->[x....]--->ab det2 ik--->[z...]--->ab
      if(igener<4) return
      if(w)print*,'mulcocod_5_2 on ajoute un trou et deux particules',
     *x,i,y,j,aa1,aa2
      n=0
      nntp=0
      do ipair=idebliscond(i),ifinliscond(i)
         ipair21=liscond(ipair)
         a=ilpair(2,ipair21)
         do ipair22=1,nlpairp
            k=ilpair(1,ipair22)
            b=ilpair(2,ipair22)
            if(ilp(i,b)/=0.and.ilp(k,a)/=0.and.a<b) cycle
            ipair11=ilp(j,a)
            ipair12=ipair22
            if(ipair11==0.or.ipair12==0) then
               ipair11=ilp(k,a)
               ipair12=ilp(j,b)
            endif
            if(ipair11==0.or.ipair12==0) cycle
            n=n+1
            iimax=max(ipair12,ipair11)
            iimin=min(ipair12,ipair11)
            ii1=iimax*(iimax-1)/2+iimin
            if(ipp(ii1)==0) then
               n=n-1
               cycle
            endif
            itp1(n)=abs(ipp(ii1))
            iimax=max(ipair22,ipair21)
            iimin=min(ipair22,ipair21)
            ii1=iimax*(iimax-1)/2+iimin
            if(ipp(ii1)==0) then
               n=n-1
               cycle
            endif
            itp2(n)=abs(ipp(ii1))
            call muladd_o_oo(k,j,i,ltp1(n))
            if(a==b) ltp1(n)=ltp1(n)+9
            nntp(ltp1(n))=nntp(ltp1(n))+1
            if(w)print'(a,20i5)','i,j,k,a,b',i,j,k,a,b,n,ltp1(n)
     *      ,itp1(n),itp2(n)
         enddo
      enddo
      if(n>0) then
         call reoitp(n,18,nntp)
         if(w)print'(a,80i4)','ITP',itp1(1:n)
         if(w)print'(a,80i4)','ITP',itp2(1:n)
         !
         elmat(1:18)=(/'k+ J+ -> a+ b+ | k+ I+ -> a+ b+',
     *                 'J+ k+ -> a+ b+ | I+ k+ -> a+ b+',
     *                 'k+ J+ -> a+ b+ | I+ k+ -> a+ b+',
     *                 'J+ k+ -> a+ b+ | k+ I+ -> a+ b+',
     *                 'k+ J+ -> a+ b+ | I+=k+ -> a+ b+',
     *                 'J+=k+ -> a+ b+ | I+ k+ -> a+ b+',
     *                 'J+=k+ -> a+ b+ | k+ I+ -> a+ b+',!!!!!
     *                 'J+ k+ -> a+ b+ | I+=k+ -> a+ b+',
     *                 'J+=k+ -> a+ b+ | I+=k+ -> a+ b+',
     *                 'k+ J+ -> a+=b+ | k+ I+ -> a+=b+',
     *                 'J+ k+ -> a+=b+ | I+ k+ -> a+=b+',
     *                 'k+ J+ -> a+=b+ | I+ k+ -> a+=b+',
     *                 'J+ k+ -> a+=b+ | k+ I+ -> a+=b+',
     *                 'k+ J+ -> a+=b+ | I+=k+ -> a+=b+',
     *                 'J+=k+ -> a+=b+ | I+ k+ -> a+=b+',
     *                 'J+=k+ -> a+=b+ | k+ I+ -> a+=b+',
     *                 'J+ k+ -> a+=b+ | I+=k+ -> a+=b+',
     *                 'J+=k+ -> a+=b+ | I+=k+ -> a+=b+'/)
         !
         jsgn=-1+mod(num_oav(j)+num_oav(i),2)*2
         if(i/=j.or.x/=y) then
            aa3=aa1
            call mula0(x,0,y,0)
            !
            if(w)print*,'icas1',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,18,jsgn,'I-','J-')
            call mula(aa3,'-o-o',elmat,n,18,jsgn,'k-','a-','b-')
            !
            if(w)print*,'icas2',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,18,jsgn,'I-','J-','b-')
            call mula(aa3,'-o-o',elmat,n,18,jsgn,'k-','a-')
            !
            if(w)print*,'icas3',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,9,jsgn,'I-','J-','a-')
            call mula(aa3,'-o-o',elmat,n,9,jsgn,'k-','b-')
            !
            if(w)print*,'icas4',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,18,jsgn,'I-','J-','k-')
            call mula(aa3,'-o-o',elmat,n,18,jsgn,'a-','b-')
            !
            if(w)print*,'icas5',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,18,jsgn,'I-','J-','a-','b-')
            call mula(aa3,'-o-o',elmat,n,18,jsgn,'k-')
            !
            if(w)print*,'icas6',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,18,jsgn,'I-','J-','k-','a-')
            call mula(aa3,'-o-o',elmat,n,18,jsgn,'b-')
            !
            if(w)print*,'icas7',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,9,jsgn,'I-','J-','k-','b-')
            call mula(aa3,'-o-o',elmat,n,9,jsgn,'a-')
            !
            if(w)print*,'icas8',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,18,jsgn,
     *      'I-','J-','k-','a-','b-')
            call mula(aa3,'-o-o',elmat,n,18,jsgn)
            !
            !===================
            !
            aa3=aa1-aa2
            !
            if(w)print*,'icas11',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,9,jsgn)
            call mula(aa3,'-o-o',elmat,n,9,jsgn,
     *      'I-','J-','k-','a-','b-')
            !
            if(w)print*,'icas12',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,18,jsgn,'b-')
            call mula(aa3,'-o-o',elmat,n,18,jsgn,'I-','J-','k-','a-')
            !
            if(w)print*,'icas13',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,9,jsgn,'a-')
            call mula(aa3,'-o-o',elmat,n,9,jsgn,'I-','J-','k-','b-')
            !
            if(w)print*,'icas14',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,9,jsgn,'k-')
            call mula(aa3,'-o-o',elmat,n,9,jsgn,'I-','J-','a-','b-')
            !
            if(w)print*,'icas15',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,9,jsgn,'a-','b-')
            call mula(aa3,'-o-o',elmat,n,9,jsgn,'I-','J-','k-')
            !
            if(w)print*,'icas16',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,18,jsgn,'k-','a-')
            call mula(aa3,'-o-o',elmat,n,18,jsgn,'I-','J-','b-')
            !
            if(w)print*,'icas17',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,9,jsgn,'k-','b-')
            call mula(aa3,'-o-o',elmat,n,9,jsgn,'I-','J-','a-')
            !
            if(w)print*,'icas18',jsgn,aa3
            call mula(aa3,'+o+o',elmat,n,9,jsgn,'k-','a-','b-')
            call mula(aa3,'-o-o',elmat,n,9,jsgn,'I-','J-')
         endif
         !
         !===================
         !
         jsgn=1-mod(num_oav(j)+num_oav(i),2)*2
         call mula0(x,0,0,y)
         aa3=aa2
         !
         if(w)print*,'icas21',jsgn,aa3
         call mula(aa3,'+oo-',elmat,n,18,jsgn,'I-')
         call mula(aa3,'-oo+',elmat,n,18,jsgn,'J-','k-','a-','b-')
         !
         if(w)print*,'icas22',jsgn,aa3
         call mula(aa3,'+oo-',elmat,n,18,jsgn,'I-','b-')
         call mula(aa3,'-oo+',elmat,n,18,jsgn,'J-','k-','a-')
         !
         if(w)print*,'icas23',jsgn,aa3
         call mula(aa3,'+oo-',elmat,n,9,jsgn,'I-','a-')
         call mula(aa3,'-oo+',elmat,n,9,jsgn,'J-','k-','b-')
         !
         if(w)print*,'icas24',jsgn,aa3
         call mula(aa3,'+oo-',elmat,n,18,jsgn,'I-','k-')
         call mula(aa3,'-oo+',elmat,n,18,jsgn,'J-','a-','b-')
         !
         if(i/=j.or.x/=y) then
            if(w)print*,'icas25',jsgn,aa3
            call mula(aa3,'+oo-',elmat,n,18,jsgn,'I-','a-','b-')
            call mula(aa3,'-oo+',elmat,n,18,jsgn,'J-','k-')
            !
            if(w)print*,'icas26',jsgn,aa3
            call mula(aa3,'+oo-',elmat,n,18,jsgn,'I-','k-','a-')
            call mula(aa3,'-oo+',elmat,n,18,jsgn,'J-','b-')
            !
            if(w)print*,'icas27',jsgn,aa3
            call mula(aa3,'+oo-',elmat,n,9,jsgn,'I-','k-','b-')
            call mula(aa3,'-oo+',elmat,n,9,jsgn,'J-','a-')
            !
            if(w)print*,'icas28',jsgn,aa3
            call mula(aa3,'+oo-',elmat,n,18,jsgn,'I-','k-','a-','b-')
            call mula(aa3,'-oo+',elmat,n,18,jsgn,'J-')
         endif
         !
      endif
 
      return
      end
