34 . IPART_STATE,NODTAG,STAT_INDXS,
35 . IPARG ,IXS10,IXS16,IXS20,ELBUF_TAB,
45#include "implicit_f.inc"
58 INTEGER ITAB(*), IPART(LIPART1,*),IPARTS(*),
59 . IGEO(NPROPGI,*), IXS(NIXS,*), IPART_STATE(*),
60 . NODTAG(*), STAT_INDXS(*),
61 . iparg(nparg,*),ixs10(6,*),ixs16(8,*),ixs20(12,*),
63 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
67 INTEGER I, N, JJ, IPRT0, IPRT, K, STAT_NUMELS_1,N10,N20,N16
68 INTEGER NG, NEL, NFT, LFT, LLT, ITY, ISOLNOD, IOFF
70 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NP
71 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: CLEF
72 TYPE(g_bufel_) ,
POINTER :: GBUF
76 CALL my_alloc(np,24*numels)
77 CALL my_alloc(clef,2,numels)
84 isolnod = iparg(28,ng)
87 gbuf => elbuf_tab(ng)%GBUF
94 IF(ipart_state(iprt)==0)cycle
96 np(jj+1) = ixs(nixs,n)
97 IF (isolnod == 10)
THEN
99 np(jj+2) = itab(ixs(2,n))
100 np(jj+3) = itab(ixs(4,n))
101 np(jj+4) = itab(ixs(7,n))
102 np(jj+5) = itab(ixs(6,n))
104 np(jj+6) = itab(ixs10(1,n10))
108 IF(ixs10(2,n10) /= 0)
THEN
109 np(jj+7) = itab(ixs10(2,n10))
113 IF(ixs10(3,n10) /= 0)
THEN
114 np(jj+8) = itab(ixs10(3,n10))
118 IF(ixs10(4,n10) /= 0)
THEN
119 np(jj+9) = itab(ixs10(4,n10))
123 IF(ixs10(5,n10) /= 0)
THEN
124 np(jj+10) = itab(ixs10(5,n10))
128 IF(ixs10(6,n10) /= 0)
THEN
129 np(jj+11) = itab(ixs10(6,n10))
143 ELSEIF (isolnod == 16)
THEN
144 n16 = n - (numels8+numels10+numels20)
145 np(jj+2) = itab(ixs(2,n))
146 np(jj+3) = itab(ixs(3,n))
147 np(jj+4) = itab(ixs(4,n))
148 np(jj+5) = itab(ixs(5,n))
149 np(jj+6) = itab(ixs(6,n))
150 np(jj+7) = itab(ixs(7,n))
151 np(jj+8) = itab(ixs(8,n))
152 np(jj+9) = itab(ixs(9,n))
153 IF(ixs16(1,n16) /= 0)
THEN
154 np(jj+10) = itab(ixs16(1,n16))
158 IF(ixs16(2,n16) /= 0)
THEN
159 np(jj+11) = itab(ixs16(2,n16))
163 IF(ixs16(3,n16) /= 0)
THEN
164 np(jj+12) = itab(ixs16(3,n16))
168 IF(ixs16(4,n16) /= 0)
THEN
169 np(jj+13) = itab(ixs16(4,n16))
173 IF(ixs16(5,n16) /= 0)
THEN
174 np(jj+14) = itab(ixs16(5,n16))
178 IF(ixs16(6,n16) /= 0)
THEN
179 np(jj+15) = itab(ixs16(6,n16))
183 IF(ixs16(7,n16) /= 0)
THEN
184 np(jj+16) = itab(ixs16(7,n16))
188 IF(ixs16(8,n16) /= 0)
THEN
189 np(jj+17) = itab(ixs16(8,n16))
197 ELSEIF (isolnod == 20)
THEN
198 n20 = n - (numels8+numels10)
199 np(jj+2) = itab(ixs(2,n))
200 np(jj+3) = itab(ixs(3,n))
201 np(jj+4) = itab(ixs(4,n))
202 np(jj+5) = itab(ixs(5,n))
204 np(jj+7) = itab(ixs(7,n))
205 np(jj+8) = itab(ixs(8,n))
206 np(jj+9) = itab(ixs(9,n))
207 IF(ixs20(1,n20) /= 0)
THEN
208 np(jj+10) = itab(ixs20(1,n20))
212 IF(ixs20(2,n20) /= 0)
THEN
213 np(jj+11) = itab(ixs20(2,n20))
217 IF(ixs20(3,n20) /= 0)
THEN
218 np(jj+12) = itab(ixs20(3,n20))
222 IF(ixs20(4,n20) /= 0)
THEN
223 np(jj+13) = itab(ixs20(4,n20))
227 IF(ixs20(5,n20) /= 0)
THEN
228 np(jj+14) = itab(ixs20(5,n20))
232 IF(ixs20(6,n20) /= 0)
THEN
233 np(jj+15) = itab(ixs20(6,n20))
237 IF(ixs20(7,n20) /= 0)
THEN
238 np(jj+16) = itab(ixs20(7,n20))
242 IF(ixs20(8,n20) /= 0)
THEN
243 np(jj+17) = itab(ixs20(8,n20))
247 IF(ixs20(9,n20) /= 0)
THEN
248 np(jj+18) = itab(ixs20(9,n20))
252 IF(ixs20(10,n20) /= 0)
THEN
253 np(jj+19) = itab(ixs20(10,n20))
257 IF(ixs20(11,n20) /= 0)
THEN
258 np(jj+20) = itab(ixs20(11,n20))
262 IF(ixs20(12,n20) /= 0)
THEN
263 np(jj+21) = itab(ixs20(12,n20))
268 np(jj+2) = itab(ixs(2,n))
269 np(jj+3) = itab(ixs(3,n))
270 np(jj+4) = itab(ixs(4,n))
271 np(jj+5) = itab(ixs(5,n))
272 np(jj+6) = itab(ixs(6,n))
273 np(jj+7) = itab(ixs(7,n))
274 np(jj+8) = itab(ixs(8,n))
275 np(jj+9) = itab(ixs(9,n))
291 np(jj+24) = iabs(nint(gbuf%OFF(i)))
294 stat_numels =stat_numels+1
295 clef(1,stat_numels)=iprt
296 clef(2,stat_numels)=ixs(nixs,n)
298 IF (isolnod == 10)
THEN
303 IF (ixs10(1,n10) /= 0) nodtag(ixs10(1,n10))=1
304 IF (ixs10(2,n10) /= 0) nodtag(ixs10(2,n10))=1
305 IF (ixs10(3,n10) /= 0) nodtag(ixs10(3,n10))=1
306 IF (ixs10(4,n10) /= 0) nodtag(ixs10(4,n10))=1
307 IF (ixs10(5,n10) /= 0) nodtag(ixs10(5,n10))=1
308 IF (ixs10(6,n10) /= 0) nodtag(ixs10(6,n10))=1
309 ELSEIF (isolnod == 16)
THEN
318 IF (ixs16(1,n16) /= 0) nodtag(ixs16(1,n16))=1
319 IF (ixs16(2,n16) /= 0) nodtag(ixs16(2,n16))=1
320 IF (ixs16(3,n16) /= 0) nodtag(ixs16(3,n16))=1
321 IF (ixs16(4,n16) /= 0) nodtag(ixs16(4,n16))=1
322 IF (ixs16(5,n16) /= 0) nodtag(ixs16(5,n16))=1
323 IF (ixs16(6,n16) /= 0) nodtag(ixs16(6,n16))=1
324 IF (ixs16(7,n16) /= 0) nodtag(ixs16(7,n16))=1
325 IF (ixs16(8,n16) /= 0) nodtag(ixs16(8,n16))=1
326 ELSEIF (isolnod == 20)
THEN
335 IF (ixs20(1,n20) /= 0) nodtag(ixs20(1,n20))=1
337 IF (ixs20(3,n20) /= 0) nodtag(ixs20(3,n20))=1
338 IF (ixs20(4,n20) /= 0) nodtag(ixs20(4,n20))=1
339 IF (ixs20(5,n20) /= 0) nodtag(ixs20(5,n20))=1
340 IF (ixs20(6,n20) /= 0) nodtag(ixs20(6,n20))=1
341 IF (ixs20(7,n20) /= 0) nodtag(ixs20(7,n20))=1
342 IF (ixs20(8,n20) /= 0) nodtag(ixs20(8,n20))=1
343 IF (ixs20(9,n20) /= 0) nodtag(ixs20(9,n20))=1
344 IF (ixs20(10,n20) /= 0) nodtag(ixs20(10,n20))=1
345 IF (ixs20(11,n20) /= 0) nodtag(ixs20(11,n20))=1
346 IF (ixs20(12,n20) /= 0) nodtag(ixs20(12,n20))=1
364 CALL my_orders(0,work,clef,stat_indxs,stat_numels,2)
372 IF (np(jj+23) == 4)
THEN
373 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
374 IF(iprt /= iprt0)
THEN
375 WRITE(iugeo,
'(A,I10)')
'/TETRA4/',ipart(4,iprt)
377 .
'# TETRA4ID NOD1 NOD2 NOD3 NOD4'
380 WRITE(iugeo,
'(5I10)') np(jj+1),np(jj+2),np(jj+4),
383 ELSEIF (np(jj+23) == 6)
THEN
384 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
385 IF(iprt /= iprt0)
THEN
386 WRITE(iugeo,
'(A,I10)')
'/PENTA6/',ipart(4,iprt)
388 .
'# PENTA6ID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6'
391 WRITE(iugeo,
'(7I10)') np(jj+1),np(jj+2),np(jj+3),
392 . np(jj+4),np(jj+6),np(jj+7),
395 ELSEIF (np(jj+23) == 8)
THEN
396 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
397 IF(iprt /= iprt0)
THEN
398 WRITE(iugeo,
'(A,I10)')
'/BRICK/',ipart(4,iprt)
400 .
'# BRICKID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8'
403 WRITE(iugeo,
'(9I10)') np(jj+1),np(jj+2),np(jj+3),
404 . np(jj+4),np(jj+5),np(jj+6),
405 . np(jj+7),np(jj+8),np(jj+9)
407 ELSEIF (np(jj+23) == 10)
THEN
408 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
409 IF(iprt /= iprt0)
THEN
410 WRITE(iugeo,
'(A,I10)')
'/TETRA10/',ipart(4,iprt)
414 .
'# NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8 NOD9 NOD10'
417 WRITE(iugeo,
'(I10)') np(jj+1)
418 WRITE(iugeo,
'(10I10)') np(jj+2),np(jj+3),np(jj+4),
419 . np(jj+5),np(jj+6),np(jj+7),
420 . np(jj+8),np(jj+9),np(jj+10),
423 ELSEIF (np(jj+23) == 16)
THEN
424 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
425 IF(iprt /= iprt0)
THEN
426 WRITE(iugeo,
'(A,I10)')
'/SHEL16/',ipart(4,iprt)
428 .
'#TSHEL16ID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8'
430 . '
# NOD9 NOD10 NOD11 NOD12'
432 .
'# NOD13 NOD14 NOD15 NOD16'
435 WRITE(iugeo,
'(9I10)') np(jj+1),np(jj+2),np(jj+3),np(jj+4),
436 . np(jj+5),np(jj+6),np(jj+7),
438 WRITE(iugeo,
'(4I10)') np(jj+10),np(jj+11),np(jj+12),
440 WRITE(iugeo,
'(4I10)') np(jj+14),np(jj+15),np(jj+16),
443 ELSEIF (np(jj+23) == 20)
THEN
444 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
445 IF(iprt /= iprt0)
THEN
446 WRITE(iugeo,
'(A,I10)')
'/BRIC20/',ipart(4,iprt)
448 .
'#BRICK20ID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8'
450 .
'# NOD9 NOD10 NOD11 NOD12 NOD13 NOD14 NOD15 NOD16'
452 .
'# NOD17 NOD18 NOD19 NOD20'
455 WRITE(iugeo,
'(9I10)') np(jj+1),np(jj+2),np(jj+3),np(jj+4),
456 . np(jj+5),np(jj+6),np(jj+7),
458 WRITE(iugeo,
'(8I10)') np(jj+10),np(jj+11),np(jj+12),
459 . np(jj+13),np(jj+14),np(jj+15),
460 . np(jj+16),np(jj+17)
461 WRITE(iugeo,
'(4I10)') np(jj+18),np(jj+19),np(jj+20),