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