C CINVJ3    SOURCE    CB215821  25/04/24    21:15:03     12248          

      SUBROUTINE C_INVARI_J3 (SIG,N,J3)
      IMPLICIT INTEGER(I-N)
      integer n,i
      complex*16 sig(n),J3,desv(6),desvdesv(6)
      call CDSVIA(sig,desv,n)
      desvdesv(1)=desv(1)*desv(1)
      desvdesv(2)=desv(2)*desv(2)
      desvdesv(3)=desv(3)*desv(3)
      if (n.ge.4) then
       desvdesv(1)=desvdesv(1)+desv(4)*desv(4)
       desvdesv(2)=desvdesv(2)+desv(4)*desv(4)
       desvdesv(4)=(desv(1)+desv(2))*desv(4)
       if (n.eq.6) then
        desvdesv(1)=desvdesv(1)+desv(5)*desv(5)
        desvdesv(2)=desvdesv(2)+desv(6)*desv(6)
        desvdesv(3)=desvdesv(3)+desv(5)*desv(5)+desv(6)*desv(6)
        desvdesv(4)=desvdesv(4)+desv(5)*desv(6)
        desvdesv(5)=(desv(1)+desv(3))*desv(5)+desv(4)*desv(6)
        desvdesv(6)=(desv(2)+desv(3))*desv(6)+desv(4)*desv(5)
       endif
      endif
      J3=CMPLX(0.D0,0.D0)
      do i=1,3
        J3=J3+desvdesv(i)*desv(i)
      enddo
      J3=J3/CMPLX(3.D0,0.D0)
      if (n.lt.4) return
      do i=4,n
        J3=J3+CMPLX(2.D0,0.D0)*desvdesv(i)*desv(i)/CMPLX(3.D0,0.D0)
      enddo
      return
      end




 
