C JO3LOC    SOURCE    CHAT      05/01/13    00:49:44     5004
      SUBROUTINE JO3LOC(XE,SHPTOT,IGAU,NBNO,BPSS)
C=======================================================================
C
C    -CALCUL DE LA MATRICE DE PASSAGE BPSS
C          ROUTINE FORTRAN PUR
C    Pierre Pegon (ISPRA) OCTOBER 93
C=======================================================================
C  INPUT
C     XE     = COORDONNEES  DE L ELEMENT
C     SHPTOT = FONCTIONS DE FORME
C            = SHPTOT(1,...) = FONCTIONS DE FORME
C            = SHPTOT(2,...) = DERIVEE PAR RAPPORT A QSI
C            = SHPTOT(3,...) = DERIVEE PAR RAPPORT A ETA
C     IGAU   = NUMERO DU POINT DE GAUSS
C     NBNO   = NOMBRE DE NOEUDS DE L'ELEMENT
C  OUTPUT
C     BPSS   = MATRICE DE PASAGE REPERE GLOBAL/REPERE LOCAL
C
C=======================================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION XE(3,*),BPSS(3,3),SHPTOT(6,NBNO,*)
      DIMENSION XD(2,4)
      DIMENSION S1(2),SN(2)
C
      NOQUAL = 0
C
C----------     CALCUL DE LA MATRICE DE  PASSAGE
C
      DO 6 I=1,2
         S1(I)=0.0D0
         SN(I)=0.0D0
    6 CONTINUE
C
      DO 7 I=1,NBNO
C
C-------------------TANGENTE AU POINT DE GAUSS IGAU SELON QSI
C
         S1(1) = S1(1) + ( SHPTOT(2,I,IGAU)*XE(1,I) )
         S1(2) = S1(2) + ( SHPTOT(2,I,IGAU)*XE(2,I) )
    7  CONTINUE
C
C-------------------NORMALISATION DE S1
C
       XNORME = SQRT((S1(1)**2) + (S1(2)**2))
       S1(1) = S1(1) / XNORME
       S1(2) = S1(2) / XNORME
C
C-------------------NORMALE AU JOINT (PAR ROTATION DE 90 DEGRES)
C
       SN(1) =-S1(2)
       SN(2) = S1(1)
C
C-------------------STOCKAGE DE LA MATRICE DE PASSAGE
C
       DO 10 I=1,2
          BPSS(1,I) = S1(I)
          BPSS(2,I) = SN(I)
   10  CONTINUE
C
      RETURN
      END


