C DR3GLM2   SOURCE    CHAT      07/10/22    21:15:45     5921
C===      version optimisee  (local  ==>  global)
C
      SUBROUTINE DR3GLM2(P,AG,AL)
C
C     ------------------------------------------------------------------
C
C          changement de repere 3d  local => global        h. bung 06-97
C
C     ------------------------------------------------------------------
C
C          p     : matrice de passage  local => general
C                  determinee par la routine dr3p
C          ag    : matrice dans le repere general
C          al    : matrice dans le repere local
C
C      IMPLICIT NONE
C
C---   variables globales
      REAL*8  P(3,3),AL(3,3)
      REAL*8  AG(3,3)
C
      INTEGER L
      REAL*8 SS(3)

C---     on calcule   (ag) = (p)  * (al) * (p)t
C
*lr           do m=1,3
*lr             ss(l)=al(m,1)*p(l,1)+al(m,2)*p(l,2)+al(m,3)*p(l,3)
*lr             do k=1,3
*lr               ag(k,l)=ag(k,l)+p(k,m)*ss(l)
*lr             end do
*lr           end do
*
      DO I=1,3
       DO J=1,3
         AG(I,J) =0.D0
       END DO
      END DO
       DO L=1,3
           do m=1,3
             SS(L)=AL(m,1)*P(L,1)+AL(m,2)*P(L,2)+AL(m,3)*P(L,3)
             do k=1,3
               AG(k,L)=AG(k,L)+P(k,m)*SS(L)
             end do
           end do
C             SS(:) = AL(:,1)*P(L,1)+AL(:,2)*P(L,2)+AL(:,3)*P(L,3)
C
C           AG(:,L) = AG(:,L) + P(:,1)*SS(1)
C     &                         + P(:,2)*SS(2)
C     &                         + P(:,3)*SS(3)
      END DO
C
      END


