C JOIGLV    SOURCE    AM        11/05/03    21:17:16     6955
             SUBROUTINE JOIGLV(REL,BPSS,RELO,P,LRE,IDIM)
C-----------------------------------------------------------------------
C  CALCUL DU VECTEUR CONTENANT LES CONTRAINTES DANS LE REPERE GLOBAL
C
C  ENTREE
C          REL   VECTEUR EXPRIME DANS LE REPERE GLOBAL
C          BPSS  MATRICE DE PASSAGE (IDIM x IDIM)
C  SORTIE
C          REL   VECTEUR EXPRIME DANS LE REPERE LOCAL
C-----------------------------------------------------------------------
       IMPLICIT INTEGER(I-N)
       IMPLICIT REAL*8(A-H,O-Z)
       DIMENSION REL(LRE),BPSS(3,3),RELO(LRE),P(LRE,LRE)
*
       CALL ZERO(P,LRE,LRE)
       CALL ZERO(RELO,LRE,1)
*
*  ASSEMBLAGE DE PASSAGE P
*
      IF(IDIM.EQ.3) THEN
      DO K=0,3
       DO I=1,3
        DO J=1,3
         P(I+3*K,J+3*K)=BPSS(J,I)
        ENDDO
       ENDDO
      ENDDO
      ELSE IF(IDIM.EQ.2) THEN
      DO K=0,1
       DO I=1,3
        DO J=1,3
         P(I+3*K,J+3*K)=BPSS(J,I)
        ENDDO
       ENDDO
      ENDDO
      ENDIF
C
C  REG = P*REL
C
       DO I=1,LRE
        DO J=1,LRE
         RELO(I) = RELO(I) + P(I,J)*REL(J)
        ENDDO
       ENDDO
*
       CALL ZERO(REL,LRE,1)
C
C  REL = RELO
C
       DO I=1,LRE
         REL(I) = RELO(I)
       ENDDO
*
       RETURN
       END


