33
34
35
36#include "implicit_f.inc"
37
38
39
40 INTEGER NEL
42 my_real,
DIMENSION(NEL,6),
INTENT(IN) :: strain
43 my_real,
DIMENSION(NEL) ,
INTENT(IN) :: d1,d2,d3,d4,d5,d6,
44 . r11,r12,r13,r21,r22,r23,r31,r32,r33
45 my_real,
DIMENSION(NEL) ,
INTENT(INOUT) :: arm1,arm2,arm3
46 my_real,
DIMENSION(NEL) ,
INTENT(OUT) :: deps1,deps2,deps3,deps4,deps5,deps6
47
48
49
50 INTEGER I
51 my_real,
DIMENSION(NEL) :: h1, h2, h3,h4, h5, h6,
52 . a11, a12, a13, a21, a22, a23, a31,a32, a33
53
54 DO i=1,nel
55 deps1(i)=d1(i)*dt1
56 deps2(i)=d2(i)*dt1
57 deps3(i)=d3(i)*dt1
58 deps4(i)=half*d4(i)*dt1
59 deps5(i)=half*d5(i)*dt1
60 deps6(i)=half*d6(i)*dt1
61 a11(i)=deps1(i)*r11(i)+deps4(i)*r21(i)+deps6(i)*r31(i)
62 a12(i)=deps1(i)*r12(i)+deps4(i)*r22(i)+deps6
63 a13(i)=deps1(i)*r13(i)+deps4(i)*r23(i)+deps6(i)*r33(i)
64 a21(i)=deps4(i)*r11(i)+deps2(i)*r21(i)+deps5(i)*r31(i)
65 a22(i)=deps4(i)*r12(i)+deps2(i)*r22(i)+deps5(i)*r32(i)
66 a23(i)=deps4(i)*r13(i)+deps2(i)*r23(i)+deps5(i)*r33(i)
67 a31(i)=deps6(i)*r11(i)+deps5(i)*r21(i)+deps3(i)*r31(i)
68 a32(i)=deps6(i)*r12(i)+deps5(i)*r22(i)+deps3(i)*r32(i)
69 a33(i)=deps6(i)*r13(i)+deps5(i)*r23(i)+deps3(i)*r33(i)
70 ENDDO
71 DO i=1,nel
72 deps1(i)=r11(i)*a11(i)+r21(i)*a21(i)+r31(i)*a31(i)
73 deps2(i)=r12(i)*a12(i)+r22(i)*a22(i)+r32(i)*a32(i)
74 deps3(i)=r13(i)*a13(i)+r23(i)*a23(i)+r33(i)*a33(i)
75 deps4(i)=r11(i)*a12(i)+r21(i)*a22(i)+r31(i)*a32(i)
76 deps5(i)=r12(i)*a13(i)+r22(i)*a23(i)+r32(i)*a33(i)
77 deps6(i)=r11(i)*a13(i)+r21(i)*a23(i)+r31(i)*a33(i)
78 deps4(i)=two*deps4(i)
79 deps5(i)=two*deps5(i)
80 deps6(i)=two*deps6(i)
81 ENDDO
82
83 DO i=1,nel
84 h1(i)=strain(i,1)
85 h2(i)=strain(i,2)
86 h3(i)=strain(i,3)
87 h4(i)=half*strain(i,4)
88 h5(i)=half*strain(i,5)
89 h6(i)=half*strain(i,6)
90 a11(i)=h1(i)*r11(i)+h4(i)*r21(i)+h6(i)*r31(i)
91 a12(i)=h1(i)*r12(i)+h4(i)*r22(i)+h6(i)*r32(i)
92 a13(i)=h1(i)*r13(i)+h4(i)*r23(i)+h6(i)*r33(i)
93 a21(i)=h4(i)*r11(i)+h2(i)*r21(i)+h5(i)*r31(i)
94 a22(i)=h4(i)*r12(i)+h2(i)*r22(i)+h5(i)*r32(i)
95 a23(i)=h4(i)*r13(i)+h2(i)*r23(i)+h5(i)*r33(i)
96 a31(i)=h6(i)*r11(i)+h5(i)*r21(i)+h3(i)*r31(i)
97 a32(i)=h6(i)*r12(i)+h5(i)*r22(i)+h3(i)*r32(i)
98 a33(i)=h6(i)*r13(i)+h5(i)*r23(i)+h3(i)*r33(i)
99 ENDDO
100 DO i=1,nel
101 h1(i)=r11(i)*a11(i)+r21(i)*a21(i)+r31(i)*a31(i)
102 h2(i)=r12(i)*a12(i)+r22(i)*a22(i)+r32(i)*a32(i)
103 h3(i)=r13(i)*a13(i)+r23(i)*a23(i)+r33(i)*a33(i)
104 arm1(i)=arm1(i) *
max(zero,1.-h2(i)-h3(i))
105 arm2(i)=arm2(i) *
max(zero,1.-h1(i)-h3(i))
106 arm3(i)=arm3(i) *
max(zero,1.-h1(i)-h2(i))
107 ENDDO
108
109 RETURN