C TIFDH3    SOURCE    PV        22/04/19    16:18:13     11344          
      SUBROUTINE TIFDH3(REL,WORK,COORD,LHOOK,DDHOOK,KERRE)
C-----------------------------------------------------------------------
C  ROUTINE DE CALCUL DE LA MATRICE DE RAIDEUR ELEMENTAIRE DE L ELEMENT D
C  POUTRE DE TIMOSCHENKO MULTI-FIBRE DANS LES AXES GLOBAUX
C
C  ENTREE
C          LRE     DIMENSION DU TABLEAU REL
C          VECT    DIRECTION DE L'OY LOCAL
C          COORD   COORDONNEES DES 2 NOEUDS
C          DDHOOK(LHOOK,LHOOK) MATRICE DE HOOK
C
C  SORTIE
C          REL     MATRICE DE RIGIDITE ELEMENTAIRE
C          KERRE   CODE D ERREUR  NON NUL SI PROBLEME , NUL SINON
C  TRAVAIL
C          WORK(300)
C
C-----------------------------------------------------------------------
C     Pierre Pegon (ISPRA) Juillet/Aout 1993
C-----------------------------------------------------------------------
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION REL(12,12),COORD(3,*),WORK(*),VECT(3),P(3,3),
     .          XE(2),YE(2),ZE(2),RP(12,12)
      DIMENSION DDHOOK(LHOOK,LHOOK)
C
      KERRE=0
      DO 2 I=1,2
      XE(I)=COORD(1,I)
      YE(I)=COORD(2,I)
  2   ZE(I)=COORD(3,I)
      OMEG = WORK(1)
      VECT(1) = WORK(2)
      VECT(2) = WORK(3)
      VECT(3) = WORK(4)
      XL=(XE(2)-XE(1))**2+(YE(2)-YE(1))**2+(ZE(2)-ZE(1))**2
      XL=SQRT(XL)
      IF(XL.EQ.0.) GO TO 999
C

C
C  CALCUL DE LA RIGIDITE EN AXES LOCAUX
C
      CALL TIFDL3(RP,XL,LHOOK,DDHOOK,OMEG)
C
C  CALCUL DE LA MATRICE DE PASSAGE
C
      CALL POUPAS(XE,YE,ZE,VECT,P,KERRE)

      IF(KERRE.NE.0) RETURN
C
C  PASSAGE DE LA MATRICE DE RIGIDITE EN AXES GLOBAUX
C
      CALL POUROG(REL,LRE,P,RP)
      RETURN
999   KERRE=1
      RETURN
      END



 
