46
47
48
49#include "implicit_f.inc"
50
51
52
53#include "com08_c.inc"
54
55
56
57 INTEGER, INTENT(IN) :: JCVT
58 INTEGER, INTENT(IN) :: NEL
59 my_real dxx(*), dyy(*), dzz(*), d4(*), d5(*), d6(*),
60 . strain(nel,6), wxx(*), wyy(*), wzz(*),off(*)
61
62
63
64 INTEGER I
65 my_real wxxf, wyyf, wzzf, q1, q2, q3, ss1, ss2, ss3,
66 . ss4, ss5, ss6, dtoff(nel)
67
68 wxxf = zero
69 wyyf = zero
70 wzzf = zero
71 q1 = zero
72 q2= zero
73 q3=0
74 dtoff(1:nel) = dt1*off(1:nel)
75 IF(jcvt>0)THEN
76 DO i=1,nel
77 strain(i,1)=strain(i,1)+dxx(i)*dtoff(i)
78 strain(i,2)=strain(i,2)+dyy(i)*dtoff(i)
79 strain(i,3)=strain(i,3)+dzz(i)*dtoff(i)
80 strain(i,4)=strain(i,4)+d4(i)*dtoff(i)
81 strain(i,5)=strain(i,5)+d5(i)*dtoff(i)
82 strain(i,6)=strain(i,6)+d6(i)*dtoff(i)
83 ENDDO
84 ELSE
85 DO i=1,nel
86
87 wxxf=wxx(i)*off(i)
88 wyyf=wyy(i)*off(i)
89 wzzf=wzz(i)*off(i)
90
91 q1=strain(i,4)*wzzf
92 q2=strain(i,6)*wyyf
93 q3=strain(i,5)*wxxf
94 ss1=strain(i,1)-q1+q2
95 ss2=strain(i,2)+q1-q3
96 ss3=strain(i,3)-q2+q3
97 ss4=strain(i,4)+2.*wzzf*(strain(i,1)-strain(i,2))+
98 . wyyf*strain(i,5)-wxxf*strain(i,6)
99 ss5=strain(i,5)+2.*wxxf*(strain(i,2)-strain(i,3))+
100 . wzzf*strain(i,6)-wyyf*strain(i,4)
101 ss6=strain(i,6)+2.*wyyf*(strain(i,3)-strain(i,1))+
102 . wxxf*strain(i,4)-wzzf*strain(i,5)
103 strain(i,1)= ss1 + dxx(i)*dtoff(i)
104 strain(i,2)= ss2 + dyy(i)*dtoff(i)
105 strain(i,3)= ss3 + dzz(i)*dtoff(i)
106 strain(i,4)= ss4 + d4(i)*dtoff(i)
107 strain(i,5)= ss5 + d5(i)*dtoff(i)
108 strain(i,6)= ss6 + d6(i)*dtoff(i)
109 ENDDO
110 ENDIF
111
112 RETURN