34
35
36
37#include "implicit_f.inc"
38
39
40
41#include "mvsiz_p.inc"
42
43
44
45#include "param_c.inc"
46
47
48
49 INTEGER JFT,JLT,NPT,NEL,IMAT,ISMSTR
50
52 . thk(*),gs(*), thklyl(nel),off(*),pm(npropm,*),
53 . sigoxx(nel),sigoyy(nel),sigoxy(nel),sigoyz(nel),sigozx(nel),
54 . signxx(nel),signyy(nel),signxy(nel),signyz(nel),signzx(nel),
55 . depsxx(mvsiz),depsyy(mvsiz),depsxy(mvsiz),depsyz(mvsiz),
56 . depszx(mvsiz),epsxx(mvsiz),epsyy(mvsiz),epsxy(mvsiz)
57
58
59
60 INTEGER I
61
63 . ezz(mvsiz),nu,g,a1,a2
65 . eigv(mvsiz,3,2),trav(mvsiz),rootv(mvsiz),
66 . eh1(mvsiz),eh2(mvsiz),eb1(mvsiz),eb2(mvsiz),
67 . for1(mvsiz),for2(mvsiz)
68
69 nu = pm(21,imat)
70 g = pm(22,imat)
71 a1 = pm(24,imat)
72 a2 = pm(25,imat)
73
74 DO i=jft,jlt
75 signxx(i)=sigoxx(i)
76 signyy(i)=sigoyy(i)
77 signxy(i)=sigoxy(i)
78 signyz(i)=sigoyz(i)
79 signzx(i)=sigozx(i)
80 ENDDO
81
82 IF (ismstr == 10) THEN
83 DO i=jft,jlt
84 epsxx(i) = epsxx(i) + one
85 epsyy(i) = epsyy(i) + one
86 epsxy(i) = half * epsxy(i)
87 ENDDO
88
89 DO i=jft,jlt
90 trav(i) = epsxx(i)+epsyy(i)
91 rootv(i) = sqrt((epsxx(i)-epsyy(i))*(epsxx(i)-epsyy(i))
92 . + epsxy(i)*epsxy(i)*four)
93 eb1(i) = half*(trav(i)+rootv(i))
94 eb2(i) = half*(trav(i)-rootv(i))
95 eh1(i) = half*log(eb1(i))
96 eh2(i) = half*log(eb2(i))
97 for1(i)= a1*eh1(i)+a2*eh2(i)
98 for2(i)= a1*eh2(i)+a2*eh1(i)
99 ENDDO
100
101 DO i=jft,jlt
102 IF (abs(eb2(i)-eb1(i)) < em15) THEN
103 eigv(i,1,1)=one
104 eigv(i,2,1)=zero
105 eigv(i,3,1)=zero
106 eigv(i,1,2)=zero
107 eigv(i,2,2)=one
108 eigv(i,3,2)=zero
109 ELSE
110 eigv(i,1,1) = (epsxx(i)-eb2(i)) / rootv(i)
111 eigv(i,2,1) = (epsyy(i)-eb2(i)) / rootv(i)
112 eigv(i,3,1) = (epsxy(i)) / rootv(i)
113 eigv(i,1,2) = (eb1(i)-epsxx(i)) / rootv(i)
114 eigv(i,2,2) = (eb1(i)-epsyy(i)) / rootv(i)
115 eigv(i,3,2) =-(epsxy(i)) / rootv(i)
116 ENDIF
117 ENDDO
118 ENDIF
119
120
121
122
123 IF (ismstr /= 10) THEN
124 DO i=jft,jlt
125 signxx(i) = signxx(i)+a1*depsxx(i)+a2*depsyy(i)
126 signyy(i) = signyy(i)+a2*depsxx(i)+a1*depsyy(i)
127 signxy(i) = signxy(i)+ g*depsxy(i)
128 signyz(i) = signyz(i)+gs(i)*depsyz(i)
129 signzx(i) = signzx(i)+gs(i)*depszx(i)
130 ENDDO
131 ELSE
132 DO i=jft,jlt
133 signxx(i) = eigv(i,1,1)*for1(i) + eigv(i,1,2)*for2(i)
134 signyy(i) = eigv(i,2,1)*for1(i) + eigv(i,2,2)*for2(i)
135 signxy(i) = eigv(i,3,1)*for1(i) + eigv(i,3,2)*for2(i)
136 signyz(i) = sigoyz(i)+ gs(i)*depsyz(i)
137 signzx(i) = sigozx(i)+ gs(i)*depszx(i)
138 ENDDO
139 ENDIF
140
141 DO i=jft,jlt
142 ezz(i) = -nu * (depsxx(i) + depsyy(i)) / (one-nu)
143 thk(i) = thk(i) + ezz(i) * thklyl(i)*off(i)
144 ENDDO
145
146 RETURN