C DR3GLM1   SOURCE    CHAT      07/10/22    21:15:44     5921
C===      version optimisee  (global  ==> local)
C
      SUBROUTINE DR3GLM1(P,AG,AL)
C
C     ------------------------------------------------------------------
C
C          changement de repere 3d  global => local        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
      REAL*8  P(3,3),AG(3,3)
      REAL*8  AL(3,3)
C
C---   local variables
      INTEGER L
      REAL*8 SS(3)


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

