33
34 USE elbufdef_mod
35 use element_mod , only : nixc
36
37
38
39#include "implicit_f.inc"
40
41
42
43#include "mvsiz_p.inc"
44#include "param_c.inc"
45
46
47
48 INTEGER IXC(NIXC,*), JFT, JLT
49
51 . pm(npropm,*),x(3,*),mas,xc,yc,zc
52 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
53
54
55
56 INTEGER I,MAT
57
59 . xx,yy,zz,xmas25,xmas(mvsiz),
area(mvsiz),
60 . rx, ry, rz,sx,sy,sz,e3x,e3y,e3z
61 TYPE(G_BUFEL_) ,POINTER :: GBUF
62
63 gbuf => elbuf_str%GBUF
64 DO i=jft,jlt
65 rx=x(1,ixc(3,i))+x(1,ixc(4,i))-x(1,ixc(2,i))-x(1,ixc(5,i))
66 sx=x(1,ixc(4,i))+x(1,ixc(5,i))-x(1,ixc(2,i))-x(1,ixc(3,i))
67 ry=x(2,ixc(3,i))+x(2,ixc(4,i))-x(2,ixc(2,i))-x(2,ixc(5,i))
68 sy=x(2,ixc(4,i))+x(2,ixc(5,i))-x(2,ixc(2,i))-x(2,ixc(3,i))
69 rz=x(3,ixc(3,i))+x(3,ixc(4,i))-x(3,ixc(2,i))-x(3,ixc(5,i))
70 sz=x(3,ixc(4,i))+x(3,ixc(5,i))-x(3,ixc(2,i))-x(3,ixc(3,i))
71 e3x = ry * sz - rz * sy
72 e3y = rz * sx - rx * sz
73 e3z = rx * sy - ry * sx
74 area(i) =fourth*sqrt(e3x*e3x + e3y*e3y + e3z*e3z)
75 END DO
76 DO i=jft,jlt
77 mat = ixc(1,i)
78 xmas(i)=pm(1,mat)*
area(i)*gbuf%THK(i)
79 END DO
80
81
82 DO i=jft,jlt
83 IF (gbuf%OFF(i) ==zero) cycle
84 xx= x(1,ixc(2,i))+x(1,ixc(3,i))+x(1,ixc(4,i))+x(1,ixc(5,i))
85 yy= x(2,ixc(2,i))+x(2,ixc(3,i))+x(2,ixc(4,i))+x(2,ixc(5,i))
86 zz= x(3,ixc(2,i))+x(3,ixc(3,i))+x(3,ixc(4,i))+x(3,ixc(5,i))
87 xmas25 = fourth*xmas(i)
88 mas = mas+xmas(i)
89 xc = xc + xmas25*xx
90 yc = yc + xmas25*yy
91 zc = zc + xmas25*zz
92 ENDDO
93
94 RETURN