1 : C DR3GLM2 SOURCE CHAT 07/10/22 21:15:45 5921 2 : C=== version optimisee (local ==> global) 3 : C 4 : SUBROUTINE DR3GLM2(P,AG,AL) 5 : C 6 : C ------------------------------------------------------------------ 7 : C 8 : C changement de repere 3d local => global 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 : C--- variables globales 20 : REAL*8 P(3,3),AL(3,3) 21 : REAL*8 AG(3,3) 22 : C 23 : INTEGER L 24 : REAL*8 SS(3) 25 : 26 : C--- on calcule (ag) = (p) * (al) * (p)t 27 : C 28 : *lr do m=1,3 29 : *lr ss(l)=al(m,1)*p(l,1)+al(m,2)*p(l,2)+al(m,3)*p(l,3) 30 : *lr do k=1,3 31 : *lr ag(k,l)=ag(k,l)+p(k,m)*ss(l) 32 : *lr end do 33 : *lr end do 34 : * 35 : DO I=1,3 36 : DO J=1,3 37 : AG(I,J) =0.D0 38 : END DO 39 : END DO 40 : DO L=1,3 41 : do m=1,3 42 : SS(L)=AL(m,1)*P(L,1)+AL(m,2)*P(L,2)+AL(m,3)*P(L,3) 43 : do k=1,3 44 : AG(k,L)=AG(k,L)+P(k,m)*SS(L) 45 : end do 46 : end do 47 : C SS(:) = AL(:,1)*P(L,1)+AL(:,2)*P(L,2)+AL(:,3)*P(L,3) 48 : C 49 : C AG(:,L) = AG(:,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 : 56 :
© Cast3M 2003 - All rights reserved.
Disclaimer