C MTC0J2    SOURCE    PV        22/04/21    08:32:51     11344          
CCC
C **********************************************************************
CCC
      SUBROUTINE MTC0J2 (K,NDIMK,X,NDIMS,NDIMV,LAM,
     .                   nescri,ues,kerre)
      IMPLICIT INTEGER(I-N)
      integer ndims,nescri,ues,ndimv,ifi,jc,i,j,kerre,ifl,ndimk
      real*8  x(ndims),lam,void(1),K(ndimk,ndimk),g
      real*8  Amat(36),Gmat(36),vecn(6),vecm(6),Avecm(6),vecntA(6)
      kerre=0
      void(1) =0.D0
        do i=1,6
         Avecm(i)=0.D0
         vecntA(i)=0.D0
         vecn(i)=0.D0
         vecm(i)=0.D0
        enddo
        do i=1,36
         amat(i)=0.D0
         gmat(i)=0.D0
        enddo
      ifl=-1
      call mathok(Gmat,ndims,ndims,ifl)
      call vflsigJ2(x,ndims,void,ndimv,vecm)
      call vyisigJ2(x,ndims,void,ndimv,vecn)
      call HessFlsigJ2(x,ndims,void,ndimv,Amat,ndims)
      do i=1,ndims*ndims
         Amat(i)=Gmat(i)+lam*Amat(i)
      enddo
      call DescLU(Amat,ndims)
      call LUinv(Amat,Gmat,ndims)
      g=0.D0
      do i=1,ndims
         do j=1,ndims
             g=g+vecn(i)*Gmat(i+ndims*(j-1))*vecm(j)
         enddo
      enddo
      do i=1,ndims
         do j=1,ndims
           Avecm(i)=Avecm(i)+Gmat(i+ndims*(j-1))*vecm(j)
           vecntA(i)=vecntA(i)+vecn(j)*Gmat(j+ndims*(i-1))
         enddo
      enddo
      do ifi=1,ndims
         do jc=1,ndims
            K(ifi,jc)=Gmat((jc-1)*ndims+ifi)-Avecm(ifi)*vecntA(jc)/g
         enddo
      enddo
      return
      end


 
