1 : C DR3GLM1 SOURCE CHAT 07/10/22 21:15:44 5921 2 : C=== version optimisee (global ==> local) 3 : C 4 : SUBROUTINE DR3GLM1(P,AG,AL) 5 : C 6 : C ------------------------------------------------------------------ 7 : C 8 : C changement de repere 3d global => local h. bung 06-97 9 : C 10 : C ------------------------------------------------------------------ 11 : C 12 : C p : matrice de passage local => general 13 : C determinee par la routine dr3p 14 : C ag : matrice dans le repere general 15 : C al : matrice dans le repere local 16 : C 17 : C IMPLICIT NONE 18 : C 19 : REAL*8 P(3,3),AG(3,3) 20 : REAL*8 AL(3,3) 21 : C 22 : C--- local variables 23 : INTEGER L 24 : REAL*8 SS(3) 25 : 26 : 27 : C--- on calcule (al) = (p)t * (ag) * (p) 28 : Clr do m=1,3 29 : Clr ss(l)=ag(m,1)*p(1,l)+ag(m,2)*p(2,l)+ag(m,3)*p(3,l) 30 : Clr do k=1,3 31 : Clr al(k,l)=al(k,l)+p(m,k)*ss(l) 32 : Clr end do 33 : Clr end do 34 : C--- M = 1,3 -> SS(1:3) 35 : DO I=1,3 36 : DO J=1,3 37 : AL(I,J) =0.D0 38 : END DO 39 : END DO 40 : DO L=1,3 41 : do m=1,3 42 : SS(L)=AG(m,1)*P(1,L)+AG(m,2)*P(2,L)+AG(m,3)*P(3,L) 43 : do k=1,3 44 : AL(k,L)=AL(k,L)+P(m,k)*SS(L) 45 : end do 46 : end do 47 : C SS(:)=AG(:,1)*P(1,L)+AG(:,2)*P(2,L)+AG(:,3)*P(3,L) 48 : C 49 : C AL(:,L) = AL(:,L) + P(1,:)*SS(1) 50 : C & + P(2,:)*SS(2) 51 : C & + P(3,:)*SS(3) 52 : END DO 53 : C 54 : END 55 : C 56 :
© Cast3M 2003 - All rights reserved.
Disclaimer