33 SUBROUTINE sderi3b(VOL,VEUL,LVLOC,GEO ,IGEO ,NGL ,NGEO ,
34 . X1 ,X2 ,X3 ,X4 ,X5 ,X6 ,X7 ,X8 ,
35 . Y1 ,Y2 ,Y3 ,Y4 ,Y5 ,Y6 ,Y7 ,Y8 ,
36 . Z1 ,Z2 ,Z3 ,Z4 ,Z5 ,Z6 ,Z7 ,Z8 ,
37 . DET, DELTAX,NEL ,JEUL )
45#include "implicit_f.inc"
58 INTEGER :: IGEO(NPROPGI,*),NGL(*),NGEO(*),LVLOC,NEL,JEUL
60 . VOL(*),(*), VEUL(LVLOC,*),GEO(NPROPG,*),
61 . X1(*), X2(*), X3(*), X4(*), X5(*), X6(*), X7(*), X8(*),
62 . y1(*), y2(*), y3(*), y4(*), y5(*), y6(*), y7(*), y8(*),
63 . z1(*), z2(*), z3(*), z4(*), z5(*), z6(*), z7(*), z8(*),
68 INTEGER I, J, JPT, IPT
70 . AJ11(MVSIZ), AJ12(MVSIZ), (MVSIZ), AJ21(MVSIZ),
71 . AJ22(MVSIZ), AJ23(MVSIZ), AJ31(MVSIZ), AJ32(),
72 . aj33(mvsiz), ai11(mvsiz), ai12
73 . ai21(mvsiz), ai22(mvsiz), ai23(mvsiz), ai31(mvsiz),
74 . ai32(mvsiz), ai33(mvsiz), a1111(mvsiz), a1113(mvsiz),
75 . a1115(mvsiz), a1117(mvsiz), a2111(mvsiz), a2113(mvsiz),
76 . a2115(mvsiz), a2117(mvsiz), a3111(mvsiz), a3113(mvsiz),
77 . a3115(mvsiz), a3117(mvsiz), a1221(mvsiz), a1222(mvsiz),
78 . a1225(mvsiz), a1226(mvsiz), a2221(mvsiz), a2222(mvsiz),
79 . a2225(mvsiz), a2226(mvsiz), a3221(mvsiz), a3222(mvsiz),
80 . a3225(mvsiz), a3226(mvsiz), a1331(mvsiz), a1332(mvsiz),
81 . a1333(mvsiz), a1334(mvsiz), a2331(mvsiz), a2332
82 . a2333(mvsiz), a2334(mvsiz), a3331(mvsiz), a3332(mvsiz),
83 . a3333(mvsiz), a3334(mvsiz), x12(mvsiz), x34(mvsiz), x56(mvsiz),
84 . x78(mvsiz), y12(mvsiz), y34(mvsiz), y56(mvsiz), y78(mvsiz),
85 . z12(mvsiz), z34(mvsiz), z56(mvsiz), z78(mvsiz), x14(mvsiz),
86 . x23(mvsiz), x58(mvsiz), x67(mvsiz), y14(mvsiz), y23(mvsiz),
87 . y58(mvsiz), y67(mvsiz), z14(mvsiz), z23(mvsiz), z58(mvsiz),
88 . z67(mvsiz), x15(mvsiz), x26(mvsiz), x37(mvsiz), x48(mvsiz),
89 . y15(mvsiz), y26(mvsiz), y37(mvsiz), y48(mvsiz), z15
90 . z26(mvsiz), z37(mvsiz), z48(mvsiz),
91 . vlinv(mvsiz),vlinc(mvsiz,8), h(8),
92 . px1(mvsiz), px2(mvsiz), px3(mvsiz), px4(mvsiz
93 . px5(mvsiz), px6(mvsiz), px7(mvsiz), px8(mvsiz),
94 . py1(mvsiz), py2(mvsiz), py3(mvsiz), py4(mvsiz),
95 . py5(mvsiz), py6(mvsiz), py7(mvsiz), py8(mvsiz),
96 . pz1(mvsiz), pz2(mvsiz), pz3(mvsiz), pz4(mvsiz),
97 . pz5(mvsiz), pz6(mvsiz), pz7(mvsiz), pz8(mvsiz)
99 .
poro, smax, vmin, xx1, yy1, zz1, xx2, yy2, zz2, xx3, yy3, zz3
155 CALL basisf (h,p11,p21,p31,ipt)
158 aj11(i)=p11*x12(i)+p13*x34(i)+p15*x56
159 aj12(i)=p11*y12(i)+p13*y34(i)+p15*y56(i)+p17
160 aj13(i)=p11*z12(i)+p13*z34(i)+p15*z56(i)+p17*z78(i)
161 aj21(i)=p21*x14(i)+p22*x23(i)+p25*x58(i)+p26*x67(i)
162 aj22(i)=p21*y14(i)+p22*y23(i)+p25*y58
163 aj23(i)=p21*z14(i)+p22*z23(i)+p25*z58(i)+p26*z67(i)
164 aj31(i)=p31*x15(i)+p32*x26(i)+p33*x37(i)+p34*x48(i)
165 aj32(i)=p31*y15(i)+p32*y26(i)+p33*y37(i)+p34*y48(i)
166 aj33(i)=p31*z15(i)+p32*z26(i)+p33*z37(i)+p34*z48(i)
170 ai11(i)= aj22(i)*aj33(i)-aj23(i)*aj32(i)
171 ai21(i)=-aj21(i)*aj33(i)+aj23(i)*aj31(i)
172 ai31(i)= aj21(i)*aj32(i)-aj22(i)*aj31(i)
173 vlinc(i,jpt)=aj11(i)*ai11(i)+aj12(i)*ai21(i)+aj13(i)*ai31(i
177 IF(vlinc(i,jpt)>zero) cycle
185 vlinv(i)=one/vlinc(i,jpt)
186 ai11(i)=vlinv(i)*ai11(i)
187 ai21(i)=vlinv(i)*ai21(i)
188 ai31(i)=vlinv(i)*ai31(i)
189 ai12(i)=vlinv(i)*(-aj12(i)*aj33(i)+aj13(i)*aj32(i))
190 ai22(i)=vlinv(i)*( aj11(i)*aj33(i)-aj13(i)*aj31(i)
191 ai32(i)=vlinv(i)*(-aj11(i)*aj32(i)+aj12(i)*aj31(i))
192 ai13(i)=vlinv(i)*( aj12(i)*aj23(i)-aj13(i
193 ai23(i)=vlinv(i)*(-aj11(i)*aj23(i)+aj13(i)*aj21(i))
194 ai33(i)=vlinv(i)*( aj11(i)*aj22(i)-aj12(i)*aj21(i))
240 px1(i)= a1111(i)+a1221(i)+a1331(i)
241 px2(i)=-a1111(i)+a1222(i)+a1332(i)
242 px3(i)= a1113(i)-a1222(i)+a1333(i)
243 px4(i)=-a1113(i)-a1221(i)+a1334(i)
244 px5(i)= a1115(i)+a1225(i)-a1331(i)
245 px6(i)=-a1115(i)+a1226(i)-a1332(i)
246 px7(i)= a1117(i)-a1226(i)-a1333(i)
247 px8(i)=-a1117(i)-a1225(i)-a1334(i)
248 py1(i)= a2111(i)+a2221(i)+a2331(i)
249 py2(i)=-a2111(i)+a2222(i)+a2332(i)
250 py3(i)= a2113(i)-a2222
251 py4(i)=-a2113(i)-a2221(i)+a2334(i)
252 py5(i)= a2115(i)+a2225(i)-a2331(i)
253 py6(i)=-a2115(i)+a2226(i)-a2332(i)
254 py7(i)= a2117(i)-a2226(i)-a2333(i)
255 py8(i)=-a2117(i)-a2225(i)-a2334(i)
256 pz1(i)= a3111(i)+a3221(i)+a3331(i)
257 pz2(i)=-a3111(i)+a3222(i)+a3332(i)
258 pz3(i)= a3113(i)-a3222(i)+a3333(i)
259 pz4(i)=-a3113(i)-a3221(i)+a3334(i)
260 pz5(i)= a3115(i)+a3225(i)-a3331
261 pz6(i)=-a3115(i)+a3226(i)-a3332(i)
262 pz7(i)= a3117(i)-a3226(i)-a3333(i)
263 pz8(i)=-a3117(i)-a3225(i)-a3334(i)
267 det(i)=det(i)+vlinc(i,jpt)
268 veul(1,i)=px1(i)*vlinc(i,jpt)+veul(1,i)
269 veul(2,i)=px2(i)*vlinc(i,jpt)+veul(2,i)
270 veul(3,i)=px3(i)*vlinc(i,jpt)+veul(3,i)
271 veul(4,i)=px4(i)*vlinc(i,jpt)+veul(4,i)
272 veul(5,i)=px5(i)*vlinc(i,jpt)+veul(5,i)
273 veul(6,i)=px6(i)*vlinc(i,jpt)+veul(6,i)
274 veul(7,i)=px7(i)*vlinc(i,jpt)+veul(7,i)
275 veul(8,i)=px8(i)*vlinc(i,jpt)+veul(8,i)
276 veul(9,i)=py1(i)*vlinc(i,jpt)+veul(9,i)
277 veul(10,i)=py2(i)*vlinc(i,jpt)+veul(10,i)
278 veul(11,i)=py3(i)*vlinc(i,jpt)+veul(11,i)
279 veul(12,i)=py4(i)*vlinc(i,jpt)+veul(12,i)
280 veul(32,i)=py5(i)*vlinc(i,jpt)+veul(32,i)
281 veul(33,i)=py6(i)*vlinc(i,jpt)+veul(33,i)
282 veul(34,i)=py7(i)*vlinc(i,jpt)+veul(34,i)
283 veul(35,i)=py8(i)*vlinc(i,jpt)+veul(35,i)
284 veul(36,i)=pz1(i)*vlinc(i,jpt)+veul(36,i)
285 veul(37,i)=pz2(i)*vlinc(i,jpt)+veul(37,i)
286 veul(38,i)=pz3(i)*vlinc(i,jpt)+veul(38,i)
287 veul(39,i)=pz4(i)*vlinc(i,jpt)+veul(39,i)
288 veul(40,i)=pz5(i)*vlinc(i,jpt)+veul(40,i)
289 veul(41,i)=pz6(i)*vlinc(i,jpt)+veul(41,i)
290 veul(42,i)=pz7(i)*vlinc(i,jpt)+veul(42,i)
291 veul(43,i)=pz8(i)*vlinc(i,jpt)+veul(43,i)
292 veul(44,i)=veul(44,i)+vlinc(i,jpt)*h(1)
293 veul(45,i)=veul(45,i)+vlinc(i,jpt)*h(2)
294 veul(46,i)=veul(46,i)+vlinc(i,jpt)*h(3)
295 veul(47,i)=veul(47,i)+vlinc(i,jpt)*h(4)
296 veul(48,i)=veul(48,i)+vlinc(i,jpt)*h(5)
297 veul(49,i)=veul(49,i)+vlinc(i,jpt)*h(6)
298 veul(50,i)=veul(50,i)+vlinc(i,jpt)*h(7)
299 veul(51,i)=veul(51,i)+vlinc(i,jpt)*h(8)
305 xx1 = x1(i) + x2(i) + x3(i) + x4(i)
306 . - x5(i) - x6(i) - x7(i) - x8(i)
307 yy1 = y1(i) + y2(i) + y3(i) + y4(i)
308 . - y5(i) - y6(i) - y7(i) - y8(i)
309 zz1 = z1(i) + z2(i) + z3(i) + z4(i)
310 . - z5(i) - z6(i) - z7(i) - z8(i)
311 xx2 = x1(i) + x2(i) + x5(i) + x6(i)
312 . - x3(i) - x4(i) - x7(i) - x8(i)
313 yy2 = y1(i) + y2(i) + y5(i) + y6(i)
314 . - y3(i) - y4(i) - y7(i) - y8(i)
315 zz2 = z1(i) + z2(i) + z5(i) + z6(i)
316 . - z3(i) - z4(i) - z7(i) - z8(i)
317 xx3 = x1(i) + x4(i) + x5(i) + x8(i)
318 . - x3(i) - x2(i) - x7(i) - x6(i)
319 yy3 = y1(i) + y4(i) + y5(i) + y8(i)
320 . - y3(i) - y2(i) - y7(i) - y6(i)
321 zz3 = z1(i) + z4(i) + z5(i) + z8(i)
322 . - z3(i) - z2(i) - z7(i) - z6(i)
324 smax = (yy1 * zz2 - yy2 * zz1)**2
325 . + (zz1 * xx2 - zz2 * xx1)**2
326 . + (xx1 * yy2 - xx2 * yy1)**2
327 smax =
max(smax,(yy1 * zz3 - yy3 * zz1)**2
328 . + (zz1 * xx3 - zz3 * xx1)**2
329 . + (xx1 * yy3 - xx3 * yy1)**2)
330 smax =
max(smax,(yy3 * zz2 - yy2 * zz3)**2
331 . + (zz3 * xx2 - zz2 * xx3)**2
332 . + (xx3 * yy2 - xx2 * yy3)**2)
333 vmin =
min(vlinc(i,1),vlinc(i,2),vlinc(i,3),vlinc(i,4),
334 . vlinc(i,5),vlinc(i,6),vlinc(i,7),vlinc(i,8))
335 deltax(i)=hundred28*vmin/sqrt(smax)
340 veul(j,i)=veul(j,i)/det(i)
346 veul(j,i)=veul(j,i)/det(i)
360 IF (nint(geo(12,ngeo(1))) == 15)
THEN
363 veul(44,i)=veul(44,i)*
poro
364 veul(45,i)=veul(45,i)*
poro
365 veul(46,i)=veul(46,i)*
poro
366 veul(47,i)=veul(47,i)*
poro
367 veul(48,i)=veul(48,i)*
poro
368 veul(49,i)=veul(49,i)*
poro
369 veul(50,i)=veul(50,i)*
poro
370 veul(51,i)=veul(51,i)*
poro