c=============================== calcolo matrice Jacobiana trasposta ===
      subroutine defJt(xieta,xord,Jt)
      implicit none
      
      include 'dim.for'
      
      double precision xieta(ncrd),xord(ncrd,nnode),Jt(ncrd,ncrd),
     +dN(ncrd,nnode)
      integer inode,icrd,jcrd
      
c     azzero la matrice Jt
      call dzero(Jt,ncrd*ncrd)
      
c     accumulo i contributi relativi alle varie funzioni di forma nodali
      do inode=1,nnode
       call defdN(xieta,dN)
c      scorro sulle righe della matrice jacobiana, ossia sull'indice
c      di coordinata fisica 1:'x', 2:'y', 3:'z'
       do icrd=1,ncrd
c       scorro sulle colonne della matrice jacobiana, ossia sull'indice
c       di coordinata naturale 1:'xi', 2:'eta', 3:'zeta'
        do jcrd=1,ncrd
         Jt(icrd,jcrd) = Jt(icrd,jcrd) + xord(icrd,inode)*dN(jcrd,inode)
        enddo
       enddo
      enddo
      
c     fatto.
      
      return
      end subroutine