31 SUBROUTINE cgshell4(ELBUF_STR,JFT,JLT ,PM ,IXC ,
35 use element_mod ,
only : nixc
39#include "implicit_f.inc"
48 INTEGER IXC(NIXC,*), JFT, JLT
51 . pm(npropm,*),x(3,*),mas,xc,yc,zc
52 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
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
63 gbuf => elbuf_str%GBUF
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)
78 xmas(i)=pm(1,mat)*
area(i)*gbuf%THK(i)
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)
105 + X ,MAS,XC ,YC ,ZC )
108 use element_mod ,
only : nixtg
112#include "implicit_f.inc"
116#include "mvsiz_p.inc"
117#include "param_c.inc"
121 INTEGER IXTG(NIXTG,*), JFT, JLT
124 . pm(npropm,*),x(3,*),mas,xc,yc,zc
125 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
132 . xx,yy,zz,xmas25,xmas(mvsiz),
area(mvsiz),
133 . rx, ry, rz,sx,sy,sz,e3x,e3y,e3z
134 TYPE(g_bufel_) ,
POINTER :: GBUF
136 gbuf => elbuf_str%GBUF
138 rx=x(1,ixtg(3,i))-x(1,ixtg(2,i))
139 sx=x(1,ixtg(4,i))-x(1,ixtg(2,i))
140 ry=x(2,ixtg(3,i))-x(2,ixtg(2,i))
141 sy=x(2,ixtg(4,i))-x(2,ixtg(2,i))
142 rz=x(3,ixtg(3,i))-x(3,ixtg(2,i))
143 sz=x(3,ixtg(4,i))-x(3,ixtg(2,i))
144 e3x = ry * sz - rz * sy
145 e3y = rz * sx - rx * sz
146 e3z = rx * sy - ry * sx
147 area(i) =half*sqrt(e3x*e3x + e3y*e3y + e3z*e3z)
151 xmas(i)=pm(1,mat)*
area(i)*gbuf%THK(i)
156 IF (gbuf%OFF(i) ==zero) cycle
157 xx= x(1,ixtg(2,i))+x(1,ixtg(3,i))+x(1,ixtg(4,i))
158 yy= x(2,ixtg(2,i))+x(2,ixtg(3,i))+x(2,ixtg(4,i))
159 zz= x(3,ixtg(2,i))+x(3,ixtg(3,i))+x(3,ixtg(4,i))
160 xmas25 = third*xmas(i)