51
52
53
54#include "implicit_f.inc"
55
56
57
58#include "mvsiz_p.inc"
59#include "com08_c.inc"
60
61
62
63 INTEGER NEL
65 . vx1(*), vx2(*), vx3(*), vx4(*), vx5(*), vx6(*), vx7(*), vx8(*),
66 . vy1(*), vy2(*), vy3(*), vy4(*), vy5(*), vy6(*), vy7(*), vy8(*),
67 . vz1(*), vz2(*), vz3(*), vz4(*), vz5(*), vz6(*), vz7(*), vz8(*),
68 . bxy1(*),bxy2(*),bxy3(*),bxy4(*),
69 . bxy5(*),bxy6(*),bxy7(*),bxy8(*),
70 . byx1(*),byx2(*),byx3(*),byx4(*),
71 . byx5(*),byx6(*),byx7(*),byx8(*),
72 . bxz1(*),bxz2(*),bxz3(*),bxz4(*),
73 . bxz5(*),bxz6(*),bxz7(*),bxz8(*),
74 . bzx1(*),bzx2(*),bzx3(*),bzx4(*),
75 . bzx5(*),bzx6(*),bzx7(*),bzx8(*),
76 . byz1(*),byz2(*),byz3(*),byz4(*),
77 . byz5(*),byz6(*),byz7(*),byz8(*),
78 . bzy1(*),bzy2(*),bzy3(*),bzy4(*),
79 . bzy5(*),bzy6(*),bzy7(*),bzy8(*),
80 . pij(nel,*),c1,g,sig_a(mvsiz,3),off(*),eint(*),
81 . vol(*),d1(*),d2(*),d3(*),sig(nel,6),s1(*),s2(*),s3(*),offg(*)
82
83
84
85 INTEGER I,J,K
87 . dc1,dg2,dxx(mvsiz),dyy(mvsiz),dzz(mvsiz),ekk,dav,
88 . dt05,e1,e2,e3,de,p2
89
90
91 IF (tt==zero) pij(1:nel,25:27)=zero
92
93 DO i=1,nel
94 IF (offg(i) >one) cycle
95 dyy(i) =bxy1(i)*vx1(i)+bxy2(i)*vx2(i)
96 + +bxy3(i)*vx3(i)+bxy4(i)*vx4(i)
97 + +bxy5(i)*vx5(i)+bxy6(i)*vx6(i)
98 + +bxy7(i)*vx7(i)+bxy8(i)*vx8(i)
99 + +bzy1(i)*vz1(i)+bzy2(i)*vz2(i)
100 + +bzy3(i)*vz3(i)+bzy4(i)*vz4(i)
101 + +bzy5(i)*vz5(i)+bzy6(i)*vz6(i)
102 + +bzy7(i)*vz7(i)+bzy8(i)*vz8(i)
103 dzz(i) =bxz1(i)*vx1(i)+bxz2(i)*vx2(i)
104 + +bxz3(i)*vx3(i)+bxz4(i)*vx4(i)
105 + +bxz5(i)*vx5(i)+bxz6(i)*vx6(i)
106 + +bxz7(i)*vx7(i)+bxz8(i)*vx8(i)
107 + +byz1(i)*vy1(i)+byz2(i)*vy2(i)
108 + +byz3(i)*vy3(i)+byz4(i)*vy4(i)
109 + +byz5(i)*vy5(i)+byz6(i)*vy6(i)
110 + +byz7(i)*vy7(i)+byz8(i)*vy8(i)
111 dxx(i) =byx1(i)*vy1(i)+byx2(i)*vy2(i)
112 + +byx3(i)*vy3(i)+byx4(i)*vy4(i)
113 + +byx5(i)*vy5(i)+byx6(i)*vy6(i)
114 + +byx7(i)*vy7(i)+byx8(i)*vy8(i)
115 + +bzx1(i)*vz1(i)+bzx2(i)*vz2(i)
116 + +bzx3(i)*vz3(i)+bzx4(i)*vz4(i)
117 + +bzx5(i)*vz5(i)+bzx6(i)*vz6(i)
118 + +bzx7(i)*vz7(i)+bzx8(i)*vz8(i)
119 ENDDO
120 dc1=c1*dt1
121 dg2=two*g*dt1
122 sig_a(1:nel,1:3)=pij(1:nel,25:27)
123 DO i=1,nel
124 IF (offg(i) >one) cycle
125 ekk=(dxx(i)+dyy(i)+dzz(i))*dc1
126
127 dav=-third*(dxx(i)+dyy(i)+dzz(i))
128 pij(i,25)=pij(i,25)*off(i)+ekk+dg2*(dxx(i)+dav)
129 pij(i,26)=pij(i,26)*off(i)+ekk+dg2*(dyy(i)+dav)
130 pij(i,27)=pij(i,27)*off(i)+ekk+dg2*(dzz(i)+dav)
131 END DO
132 dt05 =half*dt1
133 DO i=1,nel
134 IF (offg(i) >one) cycle
135 e1=(dxx(i)+d1(i))*(sig_a(i,1)+pij(i,25))+dxx(i)*(s1(i)+sig(i,1))
136 e2=(dyy(i)+d2(i))*(sig_a(i,2)+pij(i,26))+dyy(i)*(s2(i)+sig(i,2))
137 e3=(dzz(i)+d3(i))*(sig_a(i,3)+pij(i,27))+dzz(i)*(s3(i)+sig(i,3))
138 de= (e1+e2+e3)*dt05*off(i)
139 eint(i)=eint(i)+de
140 sig_a(i,1:3)=pij(i,25:27)
141 ENDDO
142
143 RETURN