37 use element_mod , only : nixs
38
39
40
41#include "implicit_f.inc"
42
43
44
45#include "mvsiz_p.inc"
46
47
48
49#include "param_c.inc"
50
51
52
53 INTEGER FXBELM(*), IPARG(NPARG,*), IXS(NIXS,*), NELS
55 . fxbsig(*), x(3,*), pm(npropm,*), fxbmod(*),
56 . geo(npropg,*), r(3,*)
57
58
59
60 INTEGER I, IG, OFFSET, LAST, NFT, NFS, NG, IEL,
61 . N1, N2, N3, N4, N5, N6, N7, N8
62 INTEGER MAT(MVSIZ)
64 . x1(mvsiz), y1(mvsiz), z1(mvsiz),
65 . x2(mvsiz), y2(mvsiz), z2(mvsiz),
66 . x3(mvsiz), y3(mvsiz), z3(mvsiz),
67 . x4(mvsiz), y4(mvsiz), z4(mvsiz),
68 . x5(mvsiz), y5(mvsiz), z5(mvsiz),
69 . x6(mvsiz), y6(mvsiz), z6(mvsiz),
70 . x7(mvsiz), y7(mvsiz), z7(mvsiz),
71 . x8(mvsiz), y8(mvsiz), z8
72 . d11, d12, d13, d21, d22, d23, d31, d32, d33, d41, d42, d43,
73 . d51, d52, d53, d61, d62, d63, d71, d72, d73, d81, d82, d83,
74 . vx1(mvsiz), vy1(mvsiz), vz1(mvsiz),
75 . vx2(mvsiz), vy2(mvsiz), vz2(mvsiz),
76 . vx3(mvsiz), vy3(mvsiz), vz3(mvsiz),
77 . vx4(mvsiz), vy4(mvsiz), vz4(mvsiz),
78 . vx5(mvsiz), vy5(mvsiz), vz5(mvsiz),
79 . vx6(mvsiz), vy6(mvsiz), vz6(mvsiz),
80 . vx7(mvsiz), vy7(mvsiz), vz7(mvsiz),
81 . vx8(mvsiz), vy8(mvsiz), vz8(mvsiz),
82 . x1p(mvsiz), y1p(mvsiz), z1p(mvsiz),
83 . x2p(mvsiz), y2p(mvsiz), z2p(mvsiz),
84 . x3p(mvsiz), y3p(mvsiz), z3p(mvsiz),
85 . x4p(mvsiz), y4p(mvsiz), z4p(mvsiz),
86 . x5p(mvsiz), y5p(mvsiz), z5p(mvsiz),
87 . x6p(mvsiz), y6p(mvsiz), z6p(mvsiz),
88 . x7p(mvsiz), y7p(mvsiz), z7p(mvsiz),
89 . x8p(mvsiz), y8p(mvsiz), z8p(mvsiz),
90 . px1(mvsiz), px2(mvsiz), px3(mvsiz), px4(mvsiz),
91 . py1(mvsiz), py2(mvsiz), py3(mvsiz), py4(mvsiz),
92 . pz1(mvsiz), pz2(mvsiz), pz3(mvsiz), pz4(mvsiz),
93 . vol(mvsiz), volp(mvsiz), d1(mvsiz), d2(mvsiz), d3(mvsiz),
94 . d4(mvsiz), d5(mvsiz), d6(mvsiz), rhop(mvsiz), sig(6,mvsiz),
95 . eint(mvsiz), sigl(6,mvsiz)
96
97 DO ig=1,nels,mvsiz
98 offset=ig-1
99 last=
min(mvsiz,nels-offset)
100 nft=offset*13
101 nfs=offset*7
102 DO i=1,last
103 ng=fxbelm(nft+13*(i-1)+1)
104 iel=iparg(3,ng)+fxbelm(nft+13*(i-1)+2)
105 mat(i)=ixs(1,iel)
106 x1(i)=x(1,ixs(2,iel))
107 y1(i)=x(2,ixs(2,iel))
108 z1(i)=x(3,ixs(2,iel))
109 x2(i)=x(1,ixs(3,iel))
110 y2(i)=x(2,ixs(3,iel))
111 z2(i)=x(3,ixs(3,iel))
112 x3(i)=x(1,ixs(4,iel))
113 y3(i)=x(2,ixs(4,iel))
114 z3(i)=x(3,ixs(4,iel))
115 x4(i)=x(1,ixs(5,iel))
116 y4(i)=x(2,ixs(5,iel))
117 z4(i)=x(3,ixs(5,iel))
118 x5(i)=x(1,ixs(6,iel))
119 y5(i)=x(2,ixs(6,iel))
120 z5(i)=x(3,ixs(6,iel))
121 x6(i)=x(1,ixs(7,iel))
122 y6(i)=x(2,ixs(7,iel))
123 z6(i)=x(3,ixs(7,iel))
124 x7(i)=x(1,ixs(8,iel))
125 y7(i)=x(2,ixs(8,iel))
126 z7(i)=x(3,ixs(8,iel))
127 x8(i)=x(1,ixs(9,iel))
128 y8(i)=x(2,ixs(9,iel))
129 z8(i)=x(3,ixs(9,iel))
130 n1=fxbelm(nft+13*(i-1)+3)
131 n2=fxbelm(nft+13*(i-1)+4)
132 n3=fxbelm(nft+13*(i-1)+5)
133 n4=fxbelm(nft+13*(i-1)+6)
134 n5=fxbelm(nft+13*(i-1)+7)
135 n6=fxbelm(nft+13*(i-1)+8)
136 n7=fxbelm(nft+13*(i-1)+9)
137 n8=fxbelm(nft+13*(i-1)+10)
138 d11=fxbmod(6*(n1-1)+1)
139 d12=fxbmod(6*(n1-1)+2)
140 d13=fxbmod(6*(n1-1)+3)
141 d21=fxbmod(6*(n2-1)+1)
142 d22=fxbmod(6*(n2-1)+2)
143 d23=fxbmod(6*(n2-1)+3)
144 d31=fxbmod(6*(n3-1)+1)
145 d32=fxbmod(6*(n3-1)+2)
146 d33=fxbmod(6*(n3-1)+3)
147 d41=fxbmod(6*(n4-1)+1)
148 d42=fxbmod(6*(n4-1)+2)
149 d43=fxbmod(6*(n4-1)+3)
150 d51=fxbmod(6*(n5-1)+1)
151 d52=fxbmod(6*(n5-1)+2)
152 d53=fxbmod(6*(n5-1)+3)
153 d61=fxbmod(6*(n6-1)+1)
154 d62=fxbmod(6*(n6-1)+2)
155 d63=fxbmod(6*(n6-1)+3)
156 d71=fxbmod(6*(n7-1)+1)
157 d72=fxbmod(6*(n7-1)+2)
158 d73=fxbmod(6*(n7-1)+3)
159 d81=fxbmod(6*(n8-1)+1)
160 d82=fxbmod(6*(n8-1)+2)
161 d83=fxbmod(6*(n8-1)+3)
162 vx1(i)=r(1,1)*d11+r(1,2)*d12+r(1,3)*d13
163 vy1(i)=r(2,1)*d11+r(2,2)*d12+r(2,3)*d13
164 vz1(i)=r(3,1)*d11+r(3,2)*d12+r(3,3)*d13
165 vx2(i)=r(1,1)*d21+r(1,2)*d22+r(1,3)*d23
166 vy2(i)=r(2,1)*d21+r(2,2)*d22+r(2,3)*d23
167 vz2(i)=r(3,1)*d21+r(3,2)*d22+r(3,3)*d23
168 vx3(i)=r(1,1)*d31+r(1,2)*d32+r(1,3)*d33
169 vy3(i)=r(2,1)*d31+r(2,2)*d32+r(2,3)*d33
170 vz3(i)=r(3,1)*d31+r(3,2)*d32+r(3,3)*d33
171 vx4(i)=r(1,1)*d41+r(1,2)*d42+r(1,3)*d43
172 vy4(i)=r(2,1)*d41+r(2,2)*d42+r(2,3)*d43
173 vz4(i)=r(3,1)*d41+r(3,2)*d42+r(3,3)*d43
174 vx5(i)=r(1,1)*d51+r(1,2)*d52+r(1,3)*d53
175 vy5(i)=r(2,1)*d51+r(2,2)*d52+r(2,3)*d53
176 vz5(i)=r(3,1)*d51+r(3,2)*d52+r(3,3)*d53
177 vx6(i)=r(1,1)*d61+r(1,2)*d62+r(1,3)*d63
178 vy6(i)=r(2,1)*d61+r(2,2)*d62+r(2,3)*d63
179 vz6(i)=r(3,1)*d61+r(3,2)*d62+r(3,3)*d63
180 vx7(i)=r(1,1)*d71+r(1,2)*d72+r(1,3)*d73
181 vy7(i)=r(2,1)*d71+r(2,2)*d72+r(2,3)*d73
182 vz7(i)=r(3,1)*d71+r(3,2)*d72+r(3,3)*d73
183 vx8(i)=r(1,1)*d81+r(1,2)*d82+r(1,3)*d83
184 vy8(i)=r(2,1)*d81+r(2,2)*d82+r(2,3)*d83
185 vz8(i)=r(3,1)*d81+r(3,2)*d82+r(3,3)*d83
186 x1p(i)=x1(i)+vx1(i)
187 y1p(i)=y1(i)+vy1(i)
188 z1p(i)=z1(i)+vz1(i)
189 x2p(i)=x2(i)+vx2(i)
190 y2p(i)=y2(i)+vy2(i)
191 z2p(i)=z2(i)+vz2(i)
192 x3p(i)=x3(i)+vx3(i)
193 y3p(i)=y3(i)+vy3(i)
194 z3p(i)=z3(i)+vz3(i)
195 x4p(i)=x4(i)+vx4(i)
196 y4p(i)=y4(i)+vy4(i)
197 z4p(i)=z4(i)+vz4(i)
198 x5p(i)=x5(i)+vx5(i)
199 y5p(i)=y5(i)+vy5(i)
200 z5p(i)=z5(i)+vz5(i)
201 x6p(i)=x6(i)+vx6(i)
202 y6p(i)=y6(i)+vy6(i)
203 z6p(i)=z6(i)+vz6(i)
204 x7p(i)=x7(i)+vx7(i)
205 y7p(i)=y7(i)+vy7(i)
206 z7p(i)=z7(i)+vz7(i)
207 x8p(i)=x8(i)+vx8(i)
208 y8p(i)=y8(i)+vy8(i)
209 z8p(i)=z8(i)+vz8(i)
210 ENDDO
211
213 . x1p, x2p, x3p, x4p, x5p, x6p, x7p, x8p,
214 . y1p, y2p, y3p, y4p, y5p, y6p, y7p, y8p,
215 . z1p, z2p, z3p, z4p, z5p, z6p, z7p, z8p,
216 . px1, px2, px3, px4,
217 . py1, py2, py3, py4,
218 . pz1, pz2, pz3, pz4)
220 . x1, x2, x3, x4, x5, x6, x7, x8,
221 . y1, y2, y3, y4, y5, y6, y7, y8,
222 . z1, z2, z3, z4, z5, z6, z7, z8,
223 . px1, px2, px3, px4,
224 . py1, py2, py3, py4,
225 . pz1, pz2, pz3, pz4)
227 . px1, px2, px3, px4,
228 . py1, py2, py3, py4,
229 . pz1, pz2, pz3
230 . vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8,
231 . vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8,
232 . vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8,
233 . d1, d2 , d3, d4, d5, d6 )
234 CALL srhoi(last, pm, vol, rhop, volp, mat)
235 CALL sm1inif(last, pm, sig, eint,
236 . rhop, d1, d2, d3, d4,
237 . d5, d6, mat)
238 CALL schrep(last, sig, sigl, r)
239
240 DO i=1,last
241 iel=iparg(3,ng)+fxbelm(nft+13*(i-1)+2)
242 fxbsig(nfs+7*(i-1)+1)=sigl(1,i)
243 fxbsig(nfs+7*(i-1)+2)=sigl(2,i)
244 fxbsig(nfs+7*(i-1)+3)=sigl(3,i)
245 fxbsig(nfs+7*(i-1)+4)=sigl(4,i)
246 fxbsig(nfs+7*(i-1)+5)=sigl(5,i)
247 fxbsig(nfs+7*(i-1)+6)=sigl(6,i)
248 fxbsig(nfs+7*(i-1)+7)=eint(i)
249 ENDDO
250 ENDDO
251
252 RETURN
subroutine srhoi(nel, pm, volo, rhon, voln, mat)
subroutine sdefoi(nel, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, dxx, dyy, dzz, d4, d5, d6)
subroutine sm1inif(nel, pm, sig, eint, rho, d1, d2, d3, d4, d5, d6, mat)
subroutine sderii(nel, det, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4)
subroutine schrep(nel, sig, sigl, r)