33 2 DNIDR ,DNIDS ,DNIDT ,DXDR ,DYDR ,DZDR ,
34 3 DXDS ,DYDS ,DZDS ,DXDT ,DYDT ,DZDT ,
35 4 XX ,YY ,ZZ ,PX ,PY ,PZ ,
36 5 VOL ,DELTAX,DELTAX2,IP ,NIP ,UL ,
42#include "implicit_f.inc"
54 . DNIDR(20),DNIDS(20),DNIDT(20),DXDR(*),DYDR(*),DZDR(*),
55 . dxds(*),dyds(*),dzds(*),dxdt(*),dydt(*),dzdt(*),
56 . drdx(mvsiz), dsdx(mvsiz), dtdx(mvsiz),
57 . drdy(mvsiz), dsdy(mvsiz), dtdy(mvsiz),
58 . drdz(mvsiz), dsdz(mvsiz), dtdz(mvsiz),
59 . xx(mvsiz,20),yy(mvsiz,20),zz(mvsiz,20),
60 . px(mvsiz,20),py(mvsiz,20),pz(mvsiz,20),volg(mvsiz),
61 . vol(*),off(*),deltax(*),deltax2(*) ,ul(mvsiz,20)
67#include "vect01_c.inc"
73 . D, AA, BB, DET(MVSIZ)
245 dxdr(i) = dnidr(1)*xx(i,1) + dnidr(2)*xx(i,2) + dnidr(3)*xx(i,3)
246 + + dnidr(4)*xx(i,4) + dnidr(5)*xx(i,5) + dnidr(6)*xx(i,6)
247 + + dnidr(7)*xx(i,7) + dnidr(8)*xx(i,8)
248 + + dnidr(9)*xx(i,9) + dnidr(10)*xx(i,10) + dnidr(11)*xx(i,11)
249 + + dnidr(12)*xx(i,12) + dnidr(13)*xx(i,13) + dnidr(14)*xx(i,14)
250 + + dnidr(15)*xx(i,15) + dnidr(16)*xx(i,16) + dnidr(17)*xx(i,17)
251 + + dnidr(18)*xx(i,18) + dnidr(19)*xx(i,19) + dnidr(20)*xx(i,20)
253 dxds(i) = dnids(1)*xx(i,1) + dnids(2)*xx(i,2) + dnids(3)*xx(i,3)
254 + + dnids(4)*xx(i,4) + dnids(5)*xx(i,5) + dnids(6)*xx(i,6)
255 + + dnids(7)*xx(i,7) + dnids(8)*xx(i,8)
256 + + dnids(9)*xx(i,9) + dnids(10)*xx(i,10) + dnids(11)*xx(i,11)
257 + + dnids(12)*xx(i,12) + dnids(13)*xx(i,13) + dnids(14)*xx(i,14)
258 + + dnids(15)*xx(i,15) + dnids(16)*xx(i,16) + dnids(17)*xx(i,17)
259 + + dnids(18)*xx(i,18) + dnids(19)*xx(i,19) + dnids(20)*xx(i,20)
261 dxdt(i) = dnidt(1)*xx(i,1) + dnidt(2)*xx(i,2) + dnidt(3)*xx(i,3)
262 + + dnidt(4)*xx(i,4) + dnidt(5)*xx(i,5) + dnidt(6)*xx(i,6)
263 + + dnidt(7)*xx(i,7) + dnidt(8)*xx(i,8)
264 + + dnidt(9)*xx(i,9) + dnidt(10)*xx(i,10) + dnidt(11)*xx(i,11)
265 + + dnidt(12)*xx(i,12) + dnidt(13)*xx(i,13) + dnidt(14)*xx(i,14)
266 + + dnidt(15)*xx(i,15) + dnidt(16)*xx(i,16) + dnidt(17)*xx(i,17)
267 + + dnidt(18)*xx(i,18) + dnidt(19)*xx(i,19) + dnidt(20)*xx(i,20)
271 dydr(i) = dnidr(1)*yy(i,1) + dnidr(2)*yy(i,2) + dnidr(3)*yy(i,3)
272 + + dnidr(4)*yy(i,4) + dnidr(5)*yy(i,5) + dnidr(6)*yy(i,6)
273 + + dnidr(7)*yy(i,7) + dnidr(8)*yy(i,8)
274 + + dnidr(9)*yy(i,9) + dnidr(10)*yy(i,10) + dnidr(11)*yy(i,11)
275 + + dnidr(12)*yy(i,12) + dnidr(13)*yy(i,13) + dnidr(14)*yy(i,14)
276 + + dnidr(15)*yy(i,15) + dnidr(16)*yy(i,16) + dnidr(17)*yy(i,17)
277 + + dnidr(18)*yy(i,18) + dnidr(19)*yy(i,19) + dnidr(20)*yy(i,20)
279 dyds(i) = dnids(1)*yy(i,1) + dnids(2)*yy(i,2) + dnids(3)*yy(i,3)
280 + + dnids(4)*yy(i,4) + dnids(5)*yy(i,5) + dnids(6)*yy(i,6)
281 + + dnids(7)*yy(i,7) + dnids(8)*yy(i,8)
282 + + dnids(9)*yy(i,9) + dnids(10)*yy(i,10) + dnids(11)*yy(i,11)
283 + + dnids(12)*yy(i,12) + dnids(13)*yy(i,13) + dnids(14)*yy(i,14)
284 + + dnids(15)*yy(i,15) + dnids(16)*yy(i,16) + dnids(17)*yy(i,17)
285 + + dnids(18)*yy(i,18) + dnids(19)*yy(i,19) + dnids(20)*yy(i,20)
287 dydt(i) = dnidt(1)*yy(i,1) + dnidt(2)*yy(i,2) + dnidt(3)*yy(i,3)
288 + + dnidt(4)*yy(i,4) + dnidt(5)*yy(i,5) + dnidt(6)*yy(i,6)
289 + + dnidt(7)*yy(i,7) + dnidt(8)*yy(i,8)
290 + + dnidt(9)*yy(i,9) + dnidt(10)*yy(i,10) + dnidt(11)*yy(i,11)
291 + + dnidt(12)*yy(i,12) + dnidt(13)*yy(i,13) + dnidt(14)*yy(i,14)
292 + + dnidt(15)*yy(i,15) + dnidt(16)*yy(i,16) + dnidt(17)*yy(i,17)
293 + + dnidt(18)*yy(i,18) + dnidt(19)*yy(i,19) + dnidt(20)*yy(i,20)
297 dzdr(i) = dnidr(1)*zz(i,1) + dnidr(2)*zz(i,2) + dnidr(3)*zz(i,3)
298 + + dnidr(4)*zz(i,4) + dnidr(5)*zz(i,5) + dnidr(6)*zz(i,6)
299 + + dnidr(7)*zz(i,7) + dnidr(8)*zz(i,8)
300 + + dnidr(9)*zz(i,9) + dnidr(10)*zz(i,10) + dnidr(11)*zz(i,11)
301 + + dnidr(12)*zz(i,12) + dnidr(13)*zz(i,13) + dnidr(14)*zz(i,14)
302 + + dnidr(15)*zz(i,15) + dnidr(16)*zz(i,16) + dnidr(17)*zz(i,17)
303 + + dnidr(18)*zz(i,18) + dnidr(19)*zz(i,19) + dnidr(20)*zz(i,20)
305 dzds(i) = dnids(1)*zz(i,1) + dnids(2)*zz(i,2) + dnids(3)*zz(i,3)
306 + + dnids(4)*zz(i,4) + dnids(5)*zz(i,5) + dnids(6)*zz(i,6)
307 + + dnids(7)*zz(i,7) + dnids(8)*zz(i,8)
308 + + dnids(9)*zz(i,9) + dnids(10)*zz(i,10) + dnids(11)*zz(i,11)
309 + + dnids(12)*zz(i,12) + dnids(13)*zz(i,13) + dnids(14)*zz(i,14)
310 + + dnids(15)*zz(i,15) + dnids(16)*zz(i,16) + dnids(17)*zz(i,17)
311 + + dnids(18)*zz(i,18) + dnids(19)*zz(i,19) + dnids(20)*zz(i,20)
313 dzdt(i) = dnidt(1)*zz(i,1) + dnidt(2)*zz(i,2) + dnidt(3)*zz(i,3)
314 + + dnidt(4)*zz(i,4) + dnidt(5)*zz(i,5) + dnidt(6)*zz(i,6)
315 + + dnidt(7)*zz(i,7) + dnidt(8)*zz(i,8)
316 + + dnidt(9)*zz(i,9) + dnidt(10)*zz(i,10) + dnidt(11)*zz(i,11)
317 + + dnidt(12)*zz(i,12) + dnidt(13)*zz(i,13) + dnidt(14)*zz(i,14)
318 + + dnidt(15)*zz(i,15) + dnidt(16)*zz(i,16) + dnidt(17)*zz(i,17)
319 + + dnidt(18)*zz(i,18) + dnidt(19)*zz(i,19) + dnidt(20)*zz(i,20)
330 drdx(i)=dyds(i)*dzdt(i)-dzds(i)*dydt(i)
331 drdy(i)=dzds(i)*dxdt(i)-dxds(i)*dzdt(i)
332 drdz(i)=dxds(i)*dydt(i)-dyds(i)*dxdt(i)
334 dsdz(i)=dxdt(i)*dydr(i)-dydt(i)*dxdr(i)
335 dsdy(i)=dzdt(i)*dxdr(i)-dxdt(i)*dzdr(i)
336 dsdx(i)=dydt(i)*dzdr(i)-dzdt(i)*dydr(i)
338 dtdx(i)=dydr(i)*dzds(i)-dzdr(i)*dyds(i)
339 dtdy(i)=dzdr(i)*dxds(i)-dxdr(i)*dzds(i)
340 dtdz(i)=dxdr(i)*dyds(i)-dydr(i)*dxds(i)
342 detdp = dxdr(i) * drdx(i)
343 . + dydr(i) * drdy(i)
344 . + dzdr(i) * drdz(i)
346 voldp(i) = w * det(i)
383 px(i,1) = dnidr(1)*drdx(i) + dnids(1)*dsdx(i) + dnidt(1)*dtdx(i)
384 px(i,2) = dnidr(2)*drdx(i) + dnids(2)*dsdx(i) + dnidt(2)*dtdx(i)
385 px(i,3) = dnidr(3)*drdx(i) + dnids(3)*dsdx(i) + dnidt(3)*dtdx(i)
386 px(i,4) = dnidr(4)*drdx(i) + dnids(4)*dsdx(i) + dnidt(4)*dtdx(i)
387 px(i,5) = dnidr(5)*drdx(i) + dnids(5)*dsdx(i) + dnidt(5)*dtdx(i)
388 px(i,6) = dnidr(6)*drdx(i) + dnids(6)*dsdx(i) + dnidt(6)*dtdx(i)
389 px(i,7) = dnidr(7)*drdx(i) + dnids(7)*dsdx(i) + dnidt(7)*dtdx(i)
390 px(i,8) = dnidr(8)*drdx(i) + dnids(8)*dsdx(i) + dnidt(8)*dtdx(i)
391 px(i,9) = dnidr(9)*drdx(i) + dnids(9)*dsdx(i) + dnidt(9)*dtdx(i)
392 px(i,10)= dnidr(10)*drdx(i)+ dnids(10)*dsdx(i)+dnidt(10)*dtdx(i)
393 px(i,11)= dnidr(11)*drdx(i)+ dnids(11)*dsdx(i)+dnidt(11)*dtdx(i)
394 px(i,12)= dnidr(12)*drdx(i)+ dnids(12)*dsdx(i)+dnidt(12)*dtdx(i)
395 px(i,13)= dnidr(13)*drdx(i)+ dnids(13)*dsdx(i)+dnidt(13)*dtdx(i)
396 px(i,14)= dnidr(14)*drdx(i)+ dnids(14)*dsdx(i)+dnidt(14)*dtdx(i)
397 px(i,15)= dnidr(15)*drdx(i)+ dnids(15)*dsdx(i)+dnidt(15)*dtdx(i)
398 px(i,16)= dnidr(16)*drdx(i)+ dnids(16)*dsdx(i)+dnidt(16)*dtdx(i)
399 px(i,17)= dnidr(17)*drdx(i)+ dnids(17)*dsdx(i)+dnidt(17)*dtdx(i)
400 px(i,18)= dnidr(18)*drdx(i)+ dnids(18)*dsdx(i)+dnidt(18)*dtdx(i)
401 px(i,19)= dnidr(19)*drdx(i)+ dnids(19)*dsdx(i)+dnidt
402 px(i,20)= dnidr(20)*drdx(i)+ dnids(20)*dsdx(i)+dnidt
405 pz(i,1) = dnidr(1)*drdz(i) + dnids(1)*dsdz(i) + dnidt(1)*dtdz(i)
406 py(i,2) = dnidr(2)*drdy(i) + dnids(2)*dsdy(i) + dnidt(2)*dtdy(i)
407 py(i,3) = dnidr(3)*drdy(i) + dnids(3)*dsdy(i) + dnidt(3)*dtdy(i)
408 py(i,4) = dnidr(4)*drdy(i) + dnids(4)*dsdy(i) + dnidt(4)*dtdy(i)
409 py(i,5) = dnidr(5)*drdy(i) + dnids(5)*dsdy(i) + dnidt(5)*dtdy(i)
410 py(i,6) = dnidr(6)*drdy(i) + dnids(6)*dsdy(i) + dnidt(6)*dtdy(i)
411 py(i,7) = dnidr(7)*drdy(i) + dnids(7)*dsdy(i) + dnidt(7)*dtdy(i)
412 py(i,8) = dnidr(8)*drdy(i) + dnids(8)*dsdy(i) + dnidt(8)*dtdy(i)
413 py(i,9) = dnidr(9)*drdy(i) + dnids(9)*dsdy(i) + dnidt(9)*dtdy(i)
414 py(i,10)= dnidr(10)*drdy(i)+ dnids(10)*dsdy(i)+dnidt(10)*dtdy(i)
415 py(i,11)= dnidr(11)*drdy(i)+ dnids(11)*dsdy(i)+dnidt(11)*dtdy(i)
416 py(i,12)= dnidr(12)*drdy(i)+ dnids(12)*dsdy(i)+dnidt(12)*dtdy(i)
417 py(i,13)= dnidr(13)*drdy(i)+ dnids(13)*dsdy(i)+dnidt(13)*dtdy(i)
418 py(i,14)= dnidr(14)*drdy(i)+ dnids(14)*dsdy(i)+dnidt(14)*dtdy(i)
419 py(i,15)= dnidr(15)*drdy(i)+ dnids(15)*dsdy(i)+dnidt(15)*dtdy(i)
420 py(i,16)= dnidr(16)*drdy(i)+ dnids(16)*dsdy(i)+dnidt(16)*dtdy(i)
421 py(i,17)= dnidr(17)*drdy(i)+ dnids(17)*dsdy(i)+dnidt(17)*dtdy(i)
422 py(i,18)= dnidr(18)*drdy(i)+ dnids(18)*dsdy(i)+dnidt(18)*dtdy(i)
423 py(i,19)= dnidr(19)*drdy(i)+ dnids(19)*dsdy(i)+dnidt(19)*dtdy(i)
424 py(i,20)= dnidr(20)*drdy(i)+ dnids(20)*dsdy(i)+dnidt(20)*dtdy
426 pz(i,1) = dnidr(1)*drdz(i) + dnids(1)*dsdz(i) + dnidt
427 pz(i,2) = dnidr(2)*drdz(i) + dnids(2)*dsdz(i) + dnidt(2)*dtdz(i)
428 pz(i,3) = dnidr(3)*drdz(i) + dnids(3)*dsdz(i) + dnidt(3)*dtdz(i)
429 pz(i,4) = dnidr(4)*drdz(i) + dnids(4)*dsdz(i) + dnidt(4)
430 pz(i,5) = dnidr(5)*drdz(i) + dnids(5)*dsdz(i) + dnidt(5)*dtdz(i)
431 pz(i,6) = dnidr(6)*drdz(i) + dnids(6)*dsdz(i) + dnidt(6)*dtdz(i)
432 pz(i,7) = dnidr(7)*drdz(i) + dnids(7)*dsdz(i) + dnidt(7)*dtdz(i)
433 pz(i,8) = dnidr(8)*drdz(i) + dnids(8)*dsdz(i) + dnidt(8)*dtdz(i)
434 py(i,9) = dnidr(9)*drdy(i) + dnids(9)*dsdy(i) + dnidt(9)*dtdy(i)
435 pz(i,9) = dnidr(9)*drdz(i) + dnids(9)*dsdz(i) + dnidt(9)*dtdz(i)
436 pz(i,10)= dnidr(10)*drdz(i)+ dnids(10)*dsdz(i)+dnidt(10)*dtdz(i)
437 pz(i,11)= dnidr(11)*drdz(i)+ dnids(11)*dsdz(i)+dnidt(11)*dtdz(i)
438 pz(i,12)= dnidr(12)*drdz(i)+ dnids(12)*dsdz(i)+dnidt(12)*dtdz(i)
439 pz(i,13)= dnidr(13)*drdz(i)+ dnids(13)*dsdz(i)+dnidt(13)*dtdz(i)
440 pz(i,14)= dnidr(14)*drdz(i)+ dnids(14)*dsdz(i)+dnidt(14)*dtdz(i)
441 pz(i,15)= dnidr(15)*drdz(i)+ dnids(15)*dsdz(i)+dnidt(15)*dtdz(i)
442 pz(i,16)= dnidr(16)*drdz(i)+ dnids(16)*dsdz(i)+dnidt(16)*dtdz(i)
443 pz(i,17)= dnidr(17)*drdz(i)+ dnids(17)*dsdz(i)+dnidt(17)*dtdz(i)
444 pz(i,18)= dnidr(18)*drdz(i)+ dnids(18)*dsdz(i)+dnidt(18)*dtdz(i)
445 pz(i,19)= dnidr(19)*drdz(i)+ dnids(19)*dsdz(i)+dnidt(19)*dtdz(i)
446 pz(i,20)= dnidr(20)*drdz(i)+ dnids(20)*dsdz(i)+dnidt(20)*dtdz(i)
465 ul(i,n) = ul(i,n) + vol(i) *
466 . ( px(i,n)*px(i,n) + py(i,n)*py(i,n) + pz(i,n)*pz(i,n) )
470 volg(i) = volg(i) + vol(i)
475 aa =
max(ul(i,1),ul(i,2),ul(i,3),ul(i,4),
476 . ul(i,5),ul(i,6),ul(i,7),ul(i,8))
477 bb =
max(ul(i,9),ul(i,10),ul(i,11),ul(i,12),ul(i,13),ul(i,14),
478 . ul(i,15),ul(i,16),ul(i,17),ul(i,18),ul(i,19),ul(i,20))
479 deltax2(i) = aa/
max(aa,bb)
482 bb = bb*eighty16/seven
483 deltax(i) = sqrt(two*volg(i)/
max(aa,bb))
492 1000
FORMAT(/
' ZERO OR NEGATIVE VOLUME : 3D-ELEMENT NB',i10/)
493 2000
FORMAT(/
' ZERO OR NEGATIVE VOLUME : DELETE 3D-ELEMENT NB',i10/)