30
31
32
33#include "implicit_f.inc"
34
35
36
37 INTEGER ,INTENT(IN) :: NEL
38 my_real ,
DIMENSION(NEL,2) ,
INTENT(IN) :: dir_a,dir_b
39 my_real ,
DIMENSION(NEL,3) ,
INTENT(INOUT) :: tens
40
41
42
43 INTEGER :: I
44 my_real :: r1,r2,s1,s2,rs1,rs2,rs3,r12a,r22a,s12b,s22b,r3r3,s3s3,
45 . t1,t2,t3
46
47 DO i = 1,nel
48 r1 = dir_a(i,1)
49 s1 = dir_a(i,2)
50 r2 = dir_b(i,1)
51 s2 = dir_b(i,2)
52 rs1 = r1*s1
53 rs2 = r2*s2
54 r12a = r1*r1
55 r22a = r2*r2
56 s12b = s1*s1
57 s22b = s2*s2
58 rs3 = s1*s2-r1*r2
59 r3r3 = one+s1*r2+r1*s2
60 r3r3 = half*r3r3
61 s3s3 = one-s1*r2-r1*s2
62 s3s3 = half*s3s3
63 t1 = tens(i,1)
64 t2 = tens(i,2)
65 t3 = tens(i,3)
66 tens(i,1) = r12a*t1 + r22a*t2 - rs3*t3
67 tens(i,2) = s12b*t1 + s22b*t2 + rs3*t3
68 tens(i,3) = rs1*t1 + rs2*t2 + (r3r3 - s3s3)*t3
69 ENDDO
70
71 RETURN