35 . IPART_STATE,NODTAG,STAT_INDXS,
36 . IPARG ,IXS10,IXS16,IXS20,ELBUF_TAB,
43 use element_mod ,
only : nixs
47#include "implicit_f.inc"
60 INTEGER ITAB(*), IPART(LIPART1,*),IPARTS(*),
61 . IGEO(NPROPGI,*), IXS(NIXS,*), (*),
62 . NODTAG(*), STAT_INDXS(*),
63 . iparg(nparg,*),ixs10(6,*),ixs16(8,*),ixs20(12,*),
65 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
69 INTEGER I, N, , IPRT0, IPRT, K,N10,N20,N16
70 INTEGER NG, NEL, NFT, LFT, LLT, ITY, ISOLNOD, IOFF
72 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NP
73 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: CLEF
74 TYPE(g_bufel_) ,
POINTER :: GBUF
78 CALL my_alloc(np,24*numels)
79 CALL my_alloc(clef,2,numels)
86 isolnod = iparg(28,ng)
89 gbuf => elbuf_tab(ng)%GBUF
96 IF(ipart_state(iprt)==0)cycle
98 np(jj+1) = ixs(nixs,n)
99 IF (isolnod == 10)
THEN
101 np(jj+2) = itab(ixs(2,n))
102 np(jj+3) = itab(ixs(4,n))
103 np(jj+4) = itab(ixs(7,n))
104 np(jj+5) = itab(ixs(6,n))
105 IF(ixs10(1,n10) /= 0)
THEN
106 np(jj+6) = itab(ixs10(1,n10))
110 IF(ixs10(2,n10) /= 0)
THEN
111 np(jj+7) = itab(ixs10(2,n10))
115 IF(ixs10(3,n10) /= 0)
THEN
116 np(jj+8) = itab(ixs10(3,n10))
120 IF(ixs10(4,n10) /= 0)
THEN
121 np(jj+9) = itab(ixs10(4,n10))
125 IF(ixs10(5,n10) /= 0)
THEN
126 np(jj+10) = itab(ixs10(5,n10))
130 IF(ixs10(6,n10) /= 0)
THEN
131 np(jj+11) = itab(ixs10(6,n10))
145 ELSEIF (isolnod == 16)
THEN
146 n16 = n - (numels8+numels10+numels20)
147 np(jj+2) = itab(ixs(2,n))
148 np(jj+3) = itab(ixs(3,n))
149 np(jj+4) = itab(ixs(4,n))
150 np(jj+5) = itab(ixs(5,n))
151 np(jj+6) = itab(ixs(6,n))
152 np(jj+7) = itab(ixs(7,n))
153 np(jj+8) = itab(ixs(8,n))
154 np(jj+9) = itab(ixs(9,n))
155 IF(ixs16(1,n16) /= 0)
THEN
156 np(jj+10) = itab(ixs16(1,n16))
160 IF(ixs16(2,n16) /= 0)
THEN
161 np(jj+11) = itab(ixs16(2,n16))
165 IF(ixs16(3,n16) /= 0)
THEN
166 np(jj+12) = itab(ixs16(3,n16))
170 IF(ixs16(4,n16) /= 0)
THEN
171 np(jj+13) = itab(ixs16(4,n16))
175 IF(ixs16(5,n16) /= 0)
THEN
176 np(jj+14) = itab(ixs16(5,n16))
180 IF(ixs16(6,n16) /= 0)
THEN
181 np(jj+15) = itab(ixs16
185 IF(ixs16(7,n16) /= 0)
THEN
186 np(jj+16) = itab(ixs16(7,n16))
190 IF(ixs16(8,n16) /= 0)
THEN
191 np(jj+17) = itab(ixs16(8,n16))
199 ELSEIF (isolnod == 20)
THEN
200 n20 = n - (numels8+numels10)
201 np(jj+2) = itab(ixs(2,n))
202 np(jj+3) = itab(ixs(3,n))
203 np(jj+4) = itab(ixs(4,n))
204 np(jj+5) = itab(ixs(5,n))
205 np(jj+6) = itab(ixs(6,n))
206 np(jj+7) = itab(ixs(7,n))
207 np(jj+8) = itab(ixs(8,n))
208 np(jj+9) = itab(ixs(9,n))
209 IF(ixs20(1,n20) /= 0)
THEN
210 np(jj+10) = itab(ixs20(1,n20))
214 IF(ixs20(2,n20) /= 0)
THEN
215 np(jj+11) = itab(ixs20(2,n20))
219 IF(ixs20(3,n20) /= 0)
THEN
220 np(jj+12) = itab(ixs20(3,n20))
224 IF(ixs20(4,n20) /= 0)
THEN
225 np(jj+13) = itab(ixs20(4,n20))
229 IF(ixs20(5,n20) /= 0)
THEN
230 np(jj+14) = itab(ixs20(5,n20))
234 IF(ixs20(6,n20) /= 0)
THEN
235 np(jj+15) = itab(ixs20(6,n20))
239 IF(ixs20(7,n20) /= 0)
THEN
240 np(jj+16) = itab(ixs20(7,n20))
244 IF(ixs20(8,n20) /= 0)
THEN
245 np(jj+17) = itab(ixs20(8,n20))
249 IF(ixs20(9,n20) /= 0)
THEN
250 np(jj+18) = itab(ixs20(9,n20))
254 IF(ixs20(10,n20) /= 0)
THEN
255 np(jj+19) = itab(ixs20(10,n20))
259 IF(ixs20(11,n20) /= 0)
THEN
260 np(jj+20) = itab(ixs20(11,n20))
264 IF(ixs20(12,n20) /= 0)
THEN
265 np(jj+21) = itab(ixs20(12,n20))
270 np(jj+2) = itab(ixs(2,n))
271 np(jj+3) = itab(ixs(3,n))
272 np(jj+4) = itab(ixs(4,n))
273 np(jj+5) = itab(ixs(5,n))
274 np(jj+6) = itab(ixs(6,n))
275 np(jj+7) = itab(ixs(7,n))
276 np(jj+8) = itab(ixs(8,n))
277 np(jj+9) = itab(ixs(9,n))
293 np(jj+24) = iabs(nint(gbuf%OFF(i)))
296 stat_numels =stat_numels+1
297 clef(1,stat_numels)=iprt
298 clef(2,stat_numels)=ixs(nixs,n)
300 IF (isolnod == 10)
THEN
305 IF (ixs10(1,n10) /= 0) nodtag(ixs10(1,n10))=1
306 IF (ixs10(2,n10) /= 0) nodtag(ixs10(2,n10))=1
307 IF (ixs10(3,n10) /= 0) nodtag(ixs10(3,n10))=1
308 IF (ixs10(4,n10) /= 0) nodtag(ixs10(4,n10))=1
309 IF (ixs10(5,n10) /= 0) nodtag(ixs10(5,n10))=1
310 IF (ixs10(6,n10) /= 0) nodtag(ixs10(6,n10))=1
311 ELSEIF (isolnod == 16)
THEN
320 IF (ixs16(1,n16) /= 0) nodtag(ixs16(1,n16))=1
321 IF (ixs16(2,n16) /= 0) nodtag(ixs16(2,n16))=1
322 IF (ixs16(3,n16) /= 0) nodtag(ixs16(3,n16))=1
323 IF (ixs16(4,n16) /= 0) nodtag(ixs16(4,n16))=1
324 IF (ixs16(5,n16) /= 0) nodtag(ixs16(5,n16))=1
325 IF (ixs16(6,n16) /= 0) nodtag(ixs16(6,n16))=1
326 IF (ixs16(7,n16) /= 0) nodtag(ixs16(7,n16))=1
327 IF (ixs16(8,n16) /= 0) nodtag(ixs16(8,n16))=1
328 ELSEIF (isolnod == 20)
THEN
337 IF (ixs20(1,n20) /= 0) nodtag(ixs20(1,n20))=1
338 IF (ixs20(2,n20) /= 0) nodtag(ixs20(2,n20))=1
339 IF (ixs20(3,n20) /= 0) nodtag(ixs20(3,n20))=1
340 IF (ixs20(4,n20) /= 0) nodtag(ixs20(4,n20))=1
341 IF (ixs20(5,n20) /= 0) nodtag(ixs20(5,n20))=1
342 IF (ixs20(6,n20) /= 0) nodtag(ixs20(6,n20))=1
343 IF (ixs20(7,n20) /= 0) nodtag(ixs20(7,n20))=1
344 IF (ixs20(8,n20) /= 0) nodtag(ixs20(8,n20))=1
345 IF (ixs20(9,n20) /= 0) nodtag(ixs20(9,n20))=1
346 IF (ixs20(10,n20) /= 0) nodtag(ixs20(10,n20))=1
347 IF (ixs20(11,n20) /= 0) nodtag(ixs20(11,n20))=1
348 IF (ixs20(12,n20) /= 0) nodtag(ixs20(12,n20))=1
374 IF (np(jj+23) == 4)
THEN
375 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
376 IF(iprt /= iprt0)
THEN
377 WRITE(iugeo,
'(A,I10)')
'/TETRA4/',ipart(4,iprt)
379 . '
# TETRA4ID NOD1 NOD2 NOD3 NOD4'
382 WRITE(iugeo,
'(5I10)') np(jj+1),np(jj+2),np(jj+4),
385 ELSEIF (np(jj+23) == 6)
THEN
386 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
387 IF(iprt /= iprt0)
THEN
388 WRITE(iugeo,
'(A,I10)')
'/PENTA6/',ipart(4,iprt)
390 .
'# PENTA6ID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6'
393 WRITE(iugeo,
'(7I10)') np(jj+1),np(jj+2),np(jj+3),
394 . np(jj+4),np(jj+6),np(jj+7),
397 ELSEIF (np(jj+23) == 8)
THEN
398 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
399 IF(iprt /= iprt0)
THEN
400 WRITE(iugeo,
'(A,I10)')
'/BRICK/',ipart(4,iprt)
402 .
'# BRICKID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8'
405 WRITE(iugeo,
'(9I10)') np(jj+1),np(jj+2),np(jj+3),
406 . np(jj+4),np(jj+5),np(jj+6),
407 . np(jj+7),np(jj+8),np(jj+9)
409 ELSEIF (np(jj+23) == 10)
THEN
410 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
411 IF(iprt /= iprt0)
THEN
412 WRITE(iugeo,
'(A,I10)')
'/TETRA10/',ipart(4,iprt)
416 .
'# NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8 NOD9 NOD10'
419 WRITE(iugeo,
'(I10)') np(jj+1)
420 WRITE(iugeo,
'(10I10)') np(jj+2),np(jj+3),np(jj+4),
421 . np(jj+5),np(jj+6),np(jj+7),
422 . np(jj+8),np(jj+9),np(jj+10),
425 ELSEIF (np(jj+23) == 16)
THEN
426 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
427 IF(iprt /= iprt0)
THEN
428 WRITE(iugeo,
'(A,I10)')
'/SHEL16/',ipart(4,iprt)
430 .
'#TSHEL16ID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8'
432 .
'# NOD9 NOD10 NOD11 NOD12'
434 .
'# NOD13 NOD14 NOD15 NOD16'
437 WRITE(iugeo,
'(9I10)') np(jj+1),np(jj+2),np(jj+3),np(jj+4),
438 . np(jj+5),np(jj+6),np(jj+7),
440 WRITE(iugeo,
'(4I10)') np(jj+10),np(jj+11),np(jj+12),
442 WRITE(iugeo,
'(4I10)') np(jj+14),np(jj+15),np(jj+16),
445 ELSEIF (np(jj+23) == 20)
THEN
446 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
447 IF(iprt /= iprt0)
THEN
448 WRITE(iugeo,
'(A,I10)')
'/BRIC20/',ipart(4,iprt)
450 .
'#BRICK20ID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8'
452 .
'# NOD9 NOD10 NOD11 NOD12 NOD13 NOD14 NOD15 NOD16'
454 .
'# NOD17 NOD18 NOD19 NOD20'
457 WRITE(iugeo,
'(9I10)') np(jj+1),np(jj+2),np(jj+3),np(jj+4),
458 . np(jj+5),np(jj+6),np(jj+7),
460 WRITE(iugeo,
'(8I10)') np(jj+10),np(jj+11),np(jj+12),
461 . np(jj+13),np(jj+14),np(jj+15),
462 . np(jj+16),np(jj+17)
463 WRITE(iugeo,
'(4I10)') np(jj+18),np(jj+19),np(jj+20),