32 . ELEM_CENTROID, FACE_CENTROID)
33 use element_mod ,
only : nixs
41#include "implicit_f.inc"
49 INTEGER,
INTENT(IN) :: , NFT, IXS(NIXS, *), LENGTH
50 my_real,
INTENT(IN) :: xgrid(3, *)
51 my_real,
INTENT(OUT) :: elem_centroid(3, nel), face_centroid(3, 6, nel)
55 INTEGER :: I, II, NODE1, NODE2, NODE3, NODE4, NODE5, NODE6, NODE7, NODE8
57 . x1(3), x2(3), x3(3), x4(3), x5(3), x6(3), x7(3), x8(3)
70 x1(1:3) = xgrid(1:3, node1)
71 x2(1:3) = xgrid(1:3, node2)
72 x3(1:3) = xgrid(1:3, node3)
73 x4(1:3) = xgrid(1:3, node4)
74 x5(1:3) = xgrid(1:3, node5)
75 x6(1:3) = xgrid(1:3, node6)
76 x7(1:3) = xgrid(1:3, node7)
77 x8(1:3) = xgrid(1:3, node8)
79 elem_centroid(1:3, ii) = one_over_8 * (x1(1:3) + x2(1:3) + x3(1:3) + x4(1:3) +
80 . x5(1:3) + x6(1:3) + x7(1:3) + x8(1:3))
83 face_centroid(1:3, 1, ii) = fourth * (x1(1:3) + x2(1:3) + x3(1:3) + x4(1:3))
85 face_centroid(1:3, 2, ii) = fourth * (x3(1:3) + x4(1:3) + x8(1:3) + x7(1:3))
87 face_centroid(1:3, 3, ii) = fourth * (x5(1:3) + x6(1:3) + x7(1:3) + x8(1:3))
89 face_centroid(1:3, 4, ii) = fourth * (x1(1:3) + x2
91 face_centroid(1:3, 5, ii) = fourth * (x2(1:3) + x3(1:3) + x7(1:3) + x6(1:3))
93 face_centroid(1:3, 6, ii) = fourth * (x1(1:3) + x4(1:3) + x8(1:3) + x5(1:3))
108 . ELEM_CENTROID, FACE_CENTROID)
109 use element_mod ,
only : nixs
117#include "implicit_f.inc"
125 INTEGER,
INTENT(IN) :: NEL, NFT, IXS(NIXS, *), LENGTH
126 my_real,
INTENT(IN) :: XGRID(3, *)
127 my_real,
INTENT(OUT) :: elem_centroid(3, nel), face_centroid(3, 6, nel)
131 INTEGER :: I, II, NODE1, NODE2, NODE3, NODE4
133 . x1(3), x2(3), x3(3), x4(3), vol
144 x1(1:3) = xgrid(1:3, node1)
145 x2(1:3) = xgrid(1:3, node2)
146 x3(1:3) = xgrid(1:3, node3)
147 x4(1:3) = xgrid(1:3, node4)
148 elem_centroid(1:3, ii) = zero
154 CALL geom(a, b, c,elem_centroid(1,ii),elem_centroid(2,ii),elem_centroid(3,ii), vol)
159 CALL geom(a, b, c,elem_centroid(1,ii),elem_centroid(2,ii),elem_centroid(3,ii), vol)
164 CALL geom(a, b, c,elem_centroid(1,ii),elem_centroid(2,ii),elem_centroid(3,ii), vol)
169 CALL geom(a, b, c,elem_centroid(1,ii),elem_centroid(2,ii),elem_centroid(3,ii), vol)
172 elem_centroid(1:3, ii) = elem_centroid(1:3, ii) / 12.d0 / vol
177 face_centroid(1:3, 5, ii) = third * (x1(1:3) + x2(1:3) + x3(1:3))
179 face_centroid(1:3, 6, ii) = third * (x1(1:3) + x2(1:3) + x4(1:3))
181 face_centroid(1:3, 2, ii) = third * (x2(1:3) + x3(1:3) + x4(1:3))
183 face_centroid(1:3, 4, ii) = third * (x1(1:3) + x3(1:3) + x4(1:3))
196 . ELEM_CENTROID, FACE_CENTROID)
197 use element_mod ,
only : nixq
205#include "implicit_f.inc"
213 INTEGER,
INTENT(IN) :: NEL, NFT, IXQ(NIXQ, *), LENGTH
214 ,
INTENT(IN) :: XGRID(3, *)
215 my_real,
INTENT(OUT) :: ELEM_CENTROID(3, NEL), FACE_CENTROID(3, 6, NEL)
219 INTEGER :: I, II, NODE1, NODE2, NODE3, NODE4
221 . X1(3), X2(3), X3(3), X4(3)
230 x1(1:3) = xgrid(1:3, node1)
231 x2(1:3) = xgrid(1:3, node2)
232 x3(1:3) = xgrid(1:3, node3)
233 x4(1:3) = xgrid(1:3, node4)
235 elem_centroid(1:3, ii) = fourth * (x1(1:3) + x2(1:3) + x3(1:3) + x4(1:3))
238 face_centroid(1:3, 1, ii) = half * (x1(1:3) + x2(1:3))
240 face_centroid(1:3, 2, ii) = half * (x2(1:3) + x3(1:3))
242 face_centroid(1:3, 3, ii) = half * (x3(1:3) + x4(1:3))
244 face_centroid(1:3, 4, ii) = half * (x1(1:3) + x4(1:3))
257 . ELEM_CENTROID, FACE_CENTROID)
258 use element_mod ,
only : nixtg
266#include "implicit_f.inc"
274 INTEGER,
INTENT(IN) :: NEL, NFT, IXTG(NIXTG, *),
275 my_real,
INTENT(IN) :: XGRID(3, *)
276 my_real,
INTENT(OUT) :: ELEM_CENTROID(3, NEL), FACE_CENTROID(3, 6, NEL)
280 INTEGER :: I, II, NODE1, NODE2, NODE3
282 . X1(3), X2(3), X3(3)
290 x1(1:3) = xgrid(1:3, node1)
291 x2(1:3) = xgrid(1:3, node2)
292 x3(1:3) = xgrid(1:3, node3)
294 elem_centroid(1:3, ii) = third * (x1(1:3) + x2(1:3) + x3(1:3))
297 face_centroid(1:3, 1, ii) = half * (x1(1:3) + x2(1:3))
299 face_centroid(1:3, 2, ii) = half * (x2(1:3) + x3(1:3))
301 face_centroid(1:3, 3, ii) = half * (x3(1:3) + x1(1:3))