C TUYRO2    SOURCE    CHAT      05/01/13    03:57:23     5004
      SUBROUTINE TUYRO2(REL,LRE,P,NULI,NUCO,ISYM)
*-----------------------------------------------------------------------
*  PRODUITS DE MATRICES PAR BLOCS
*
*  ENTREE
C         LRE    NOMBRE DE LIGNES DU TABLEAU REL
C         P      MATRICE DE PASSAGE
C         NULI   NOMBRE DE LIGNES DE DECALAGE
C         NUCO   NUMERO DE COLONNES DE DECALAGE
C         REL    MATRICE ELEMENTAIRE EN AXES LOCAUX
C         ISYM   1 SI MATRICE SYMETRIQUE 0 SINON
C
C  SORTIE
C         REL    MATRICE ELEMENTAIRE EN AXES GLOBAUX
C
C-----------------------------------------------------------------------
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION REL(LRE,*),P(3,*),W(3,3),V(3)
*
      NCAR=4-ISYM
      NREC=4-2*ISYM
*
*  LES BLOCS CARRES
*
      I1=NULI
      J1=NUCO
      DO 10 ICAR=1,NCAR
      IF(ICAR.EQ.2) J1=J1+3
      IF(ICAR.EQ.3) I1=I1+3
      IF(ICAR.EQ.4) J1=J1-3
*
      DO 1 I=1,3
      II=I1+I
      DO 1 J=1,3
      W(I,J)=0.D0
      DO 1 K=1,3
      KK=J1+K
      W(I,J)=W(I,J)+REL(II,KK)*P(K,J)
 1    CONTINUE
*
      DO 2 I=1,3
      II=I1+I
      DO 2 J=1,3
      JJ=J1+J
      REL(II,JJ)=0.D0
      DO 2 K=1,3
      REL(II,JJ)=REL(II,JJ)+P(K,I)*W(K,J)
 2    CONTINUE
*
 10   CONTINUE
*
*  LES BLOCS RECTANGULAIRES
*
      I1=NULI
      J1=NUCO+6
      LRE2=LRE/2
      LRE6=LRE2-6
*
      DO 20 IREC=1,NREC
*
      IF(IREC.LE.2) THEN
      IF(IREC.EQ.2) I1=I1+3
      DO 3 J=1,LRE6
      JJ=J1+J
      DO 31 I=1,3
      II=I1+I
      V(I)=REL(II,JJ)
      REL(II,JJ)=0.D0
 31   CONTINUE
      DO 32 I=1,3
      II=I1+I
      DO 32 K=1,3
      REL(II,JJ)=REL(II,JJ)+P(K,I)*V(K)
 32   CONTINUE
  3   CONTINUE
*
      ELSE
      IF(IREC.EQ.3) THEN
                     I1=NULI+6
                     J1=NUCO
                    ENDIF
      IF(IREC.EQ.4) J1=J1+3
      DO 4 I=1,LRE6
      II=I1+I
      DO 41 J=1,3
      JJ=J1+J
      V(J)=REL(II,JJ)
      REL(II,JJ)=0.D0
 41   CONTINUE
      DO 42 J=1,3
      JJ=J1+J
      DO 42 K=1,3
      REL(II,JJ)=REL(II,JJ)+V(K)*P(K,J)
 42   CONTINUE
  4   CONTINUE
      ENDIF
*
 20   CONTINUE
*
      RETURN
      END

