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