C INVAJ3    SOURCE    CHAT      05/01/13    00:42:12     5004

      SUBROUTINE INVARI_J3 (SIG,N,J3)
      IMPLICIT INTEGER(I-N)
      integer n,i
      real*8 sig(n),J3,desv(6),desvdesv(6)
      call Desviador(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=0.D0
      do i=1,3
         J3=J3+desvdesv(i)*desv(i)
      enddo
      J3=J3/3.D0
      if (n.lt.4) return
      do i=4,n
         J3=J3+2.D0*desvdesv(i)*desv(i)/3.D0
      enddo
      return
      end



