C CQ8LOC    SOURCE    CHAT      05/01/12    22:27:23     5004
      SUBROUTINE CQ8LOC(XX,NBNN,SHPELE,TXR,IRR)
C=======================================================================
C       CALCULE LES REPERES LOCAUX DES NOEUDS   COQ6 ET  COQ8
C  ENTREES
C     XX(3,NBNN)           : COORDONNEES DES NOEUDS
C     NBNN                 : NOMBRE DE NOEUDS
C  SHPELE(6,NBNN,NBNN)     :   VALEURS DES FONCTIONS DE FORME ET
C                  DE LEURS DERIVEES AUX NOEUDS
C  SORTIES
C   TXR(3,3,NBNN)          :LES NBNN REPERE LOCAUX AUX NOEUDS
C     IRR                  :INDICATEUR  D ERREUR
C-----------------------------------------------------------------------
C                RECUPERATION BILBO   JUILLET 86
C=======================================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
      PARAMETER(XZER=0.D0)
      DIMENSION XX(3,*),SHPELE(6,NBNN,*),TXR(3,3,*)
      DIMENSION T(9)
C
C   ---   DETERMINATION DES AXES LOCAUX AU NOEUD I   ---
C
      DO 50 I=1,NBNN
      DO 20 L=1,3
      DO 20 J=1,2
      K1=3*(J-1)+L
      T(K1)=XZER
      DO 20 K=1,NBNN
      T(K1)=T(K1)+SHPELE(J+1,K,I)*XX(L,K)
   20 CONTINUE
C
C   ---   PRODUIT VECTORIEL ET NORMALISATION   ---
C
      CALL CROSS2(T(1),T(4),T(7),IRR)
      CALL CROSS2(T(7),T(1),T(4),IRR)
      CALL CROSS2(T(4),T(7),T(1),IRR)
C
      IF(IRR.EQ.0) RETURN
C
C   ---   TRANSFERT DANS LE TABLEAU TXR   ---
C
      DO 40 J=1,3
      DO 40 K=1,3
      K1=3*(K-1)+J
      TXR(J,K,I)=T(K1)
   40 CONTINUE
   50 CONTINUE
      RETURN
      END

