35 . IPART_STATE,NODTAG,STAT_INDXS,
36 . IPARG, LENGS,IXS10,IXS16,IXS20,
46#include "implicit_f.inc"
61 INTEGER ITAB(*), IPART(LIPART1,*),
62 . IGEO(NPROPGI,*), IXS(NIXS,*),
63 . IPARTS(*), IPART_STATE(*),
64 . nodtag(*), stat_indxs(*),
65 . iparg(nparg,*),lengs,ixs10(6,*),ixs16(8,*),
67 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET ::
71 INTEGER I, N, JJ, IPRT, BUF, IPRT0, K, STAT_NUMELS_1
72 INTEGER NG, NEL, NFT, LFT, LLT, ITY, ISOLNOD, IOFF
73 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IADG
74 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IADD
75 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NP
76 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NPGLOB
77 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: CLEF
79 TYPE(g_bufel_) ,
POINTER :: GBUF
83 CALL my_alloc(iadg,nspmd,npart)
84 CALL my_alloc(iadd,npart+1)
85 CALL my_alloc(np,24*numelsg)
86 CALL my_alloc(npglob,24*numelsg)
87 CALL my_alloc(clef,2,numelsg)
90 npglob(1:24*numelsg) = 0
96 isolnod = iparg(28,ng)
99 gbuf => elbuf_tab(ng)%GBUF
107 IF(ipart_state(iprt)==0)cycle
109 np(jj+1) = ixs(nixs,n)
110 IF (isolnod == 10)
THEN
111 np(jj+2) = itab(ixs(2,n))
112 np(jj+3) = itab(ixs(4,n))
113 np(jj+4) = itab(ixs(7,n))
114 np(jj+5) = itab(ixs(6,n))
115 IF(ixs10(1,n - numels8) /= 0)
THEN
116 np(jj+6) = itab(ixs10(1,n - numels8))
120 IF(ixs10(2,n - numels8) /= 0)
THEN
121 np(jj+7) = itab(ixs10(2,n - numels8))
125 IF(ixs10(3,n - numels8) /= 0)
THEN
126 np(jj+8) = itab(ixs10(3,n - numels8))
130 IF(ixs10(4,n - numels8) /= 0)
THEN
131 np(jj+9) = itab(ixs10(4,n - numels8))
135 IF(ixs10(5,n - numels8) /= 0)
THEN
136 np(jj+10) = itab(ixs10(5,n - numels8))
140 IF(ixs10(6,n - numels8) /= 0)
THEN
141 np(jj+11) = itab(ixs10(6,n - numels8))
155 ELSEIF (isolnod == 16)
THEN
156 np(jj+2) = itab(ixs(2,n))
157 np(jj+3) = itab(ixs(3,n))
158 np(jj+4) = itab(ixs(4,n))
159 np(jj+5) = itab(ixs(5,n))
160 np(jj+6) = itab(ixs(6,n))
161 np(jj+7) = itab(ixs(7,n))
162 np(jj+8) = itab(ixs(8,n))
163 np(jj+9) = itab(ixs(9,n))
164 IF(ixs16(1,n - (numels8+numels10+numels20)) /= 0)
THEN
165 np(jj+10) = itab(ixs16(1,n - (numels8+numels10+numels20)))
169 IF(ixs16(2,n - (numels8+numels10+numels20)) /= 0)
THEN
170 np(jj+11) = itab(ixs16(2,n - (numels8+numels10+numels20)))
174 IF(ixs16(3,n - (numels8+numels10+numels20)) /= 0)
THEN
175 np(jj+12) = itab(ixs16(3,n - (numels8+numels10+numels20)))
179 IF(ixs16(4,n - (numels8+numels10+numels20)) /= 0)
THEN
180 np(jj+13) = itab(ixs16(4,n - (numels8+numels10+numels20)))
184 IF(ixs16(5,n - (numels8+numels10+numels20)) /= 0)
THEN
185 np(jj+14) = itab(ixs16(5,n - (numels8+numels10+numels20)))
189 IF(ixs16(6,n - (numels8+numels10+numels20)) /= 0)
THEN
190 np(jj+15) = itab(ixs16(6,n - (numels8+numels10+numels20)))
194 IF(ixs16(7,n - (numels8+numels10+numels20)) /= 0)
THEN
195 np(jj+16) = itab(ixs16(7,n - (numels8+numels10+numels20)))
199 IF(ixs16(8,n - (numels8+numels10+numels20)) /= 0)
THEN
200 np(jj+17) = itab(ixs16(8,n - (numels8+numels10+numels20)))
208 ELSEIF (isolnod == 20)
THEN
209 np(jj+2) = itab(ixs(2,n))
210 np(jj+3) = itab(ixs(3,n))
211 np(jj+4) = itab(ixs(4,n))
212 np(jj+5) = itab(ixs(5,n))
213 np(jj+6) = itab(ixs(6,n))
214 np(jj+7) = itab(ixs(7,n))
215 np(jj+8) = itab(ixs(8,n))
216 np(jj+9) = itab(ixs(9,n))
217 IF(ixs20(1,n - (numels8+numels10)) /= 0)
THEN
218 np(jj+10) = itab(ixs20(1,n - (numels8+numels10)))
222 IF(ixs20(2,n - (numels8+numels10)) /= 0)
THEN
223 np(jj+11) = itab(ixs20(2,n - (numels8+numels10)))
227 IF(ixs20(3,n - (numels8+numels10)) /= 0)
THEN
228 np(jj+12) = itab(ixs20(3,n - (numels8+numels10)))
232 IF(ixs20(4,n - (numels8+numels10)) /= 0)
THEN
233 np(jj+13) = itab(ixs20(4,n - (numels8+numels10)))
237 IF(ixs20(5,n - (numels8+numels10)) /= 0)
THEN
238 np(jj+14) = itab(ixs20(5,n - (numels8+numels10)))
242 IF(ixs20(6,n - (numels8+numels10)) /= 0)
THEN
243 np(jj+15) = itab(ixs20(6,n - (numels8+numels10)))
247 IF(ixs20(7,n - (numels8+numels10)) /= 0)
THEN
248 np(jj+16) = itab(ixs20(7,n - (numels8+numels10)))
252 IF(ixs20(8,n - (numels8+numels10)) /= 0)
THEN
253 np(jj+17) = itab(ixs20(8,n - (numels8+numels10)))
257 IF(ixs20(9,n - (numels8+numels10)) /= 0)
THEN
258 np(jj+18) = itab(ixs20(9,n - (numels8+numels10)))
262 IF(ixs20(10,n - (numels8+numels10)) /= 0)
THEN
263 np(jj+19) = itab(ixs20(10,n - (numels8+numels10)))
267 IF(ixs20(11,n - (numels8+numels10)) /= 0)
THEN
268 np(jj+20) = itab(ixs20(11,n - (numels8+numels10)))
272 IF(ixs20(12,n - (numels8+numels10)) /= 0)
THEN
273 np(jj+21) = itab(ixs20(12,n - (numels8+numels10)))
278 np(jj+2) = itab(ixs(2,n))
279 np(jj+3) = itab(ixs(3,n))
280 np(jj+4) = itab(ixs(4,n))
281 np(jj+5) = itab(ixs(5,n))
282 np(jj+6) = itab(ixs(6,n))
283 np(jj+7) = itab(ixs(7,n))
284 np(jj+8) = itab(ixs(8,n))
285 np(jj+9) = itab(ixs(9,n))
301 np(jj+24) = iabs(nint(gbuf%OFF(i)))
304 stat_numels =stat_numels+1
306 IF (isolnod == 10)
THEN
311 IF (ixs10(1,n - numels8) /= 0) nodtag(ixs10(1,n - numels8))=1
312 IF (ixs10(2,n - numels8) /= 0) nodtag(ixs10(2,n - numels8))=1
313 IF (ixs10(3,n - numels8) /= 0) nodtag(ixs10(3,n - numels8))=1
314 IF (ixs10(4,n - numels8) /= 0) nodtag(ixs10(4,n - numels8))=1
315 IF (ixs10(5,n - numels8) /= 0) nodtag(ixs10(5,n - numels8))=1
316 IF (ixs10(6,n - numels8) /= 0) nodtag(ixs10(6,n - numels8))=1
317 ELSEIF (isolnod == 16)
THEN
326 IF (ixs16(1,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(1,n - (numels8+numels10+numels20)))=1
327 IF (ixs16(2,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(2,n - (numels8+numels10+numels20)))=1
328 IF (ixs16(3,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(3,n - (numels8+numels10+numels20)))=1
329 IF (ixs16(4,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(4,n - (numels8+numels10+numels20)))=1
330 IF (ixs16(5,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(5,n - (numels8+numels10+numels20)
331 IF (ixs16(6,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(6,n - (numels8+numels10+numels20)))=1
332 IF (ixs16(7,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(7,n - (numels8+numels10+numels20)))=1
333 IF (ixs16(8,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(8,n - (numels8+numels10+numels20)))=1
334 ELSEIF (isolnod == 20)
THEN
343 IF (ixs20(1,n - (numels8+numels10)) /= 0) nodtag(ixs20(1,n - (numels8+numels10)))=1
344 IF (ixs20(2,n - (numels8+numels10)) /= 0) nodtag(ixs20(2,n - (numels8+numels10)))=1
345 IF (ixs20(3,n - (numels8+numels10)) /= 0) nodtag(ixs20(3,n - (numels8+numels10)))=1
346 IF (ixs20(4,n - (numels8+numels10)) /= 0) nodtag(ixs20(4,n - (numels8+numels10)))=1
347 IF (ixs20(5,n - (numels8+numels10)) /= 0) nodtag(ixs20(5,n - (numels8+numels10)))=1
348 IF (ixs20(6,n - (numels8+numels10)) /= 0) nodtag(ixs20(6,n - (numels8+numels10)))=1
349 IF (ixs20(7,n - (numels8+numels10)) /= 0) nodtag(ixs20(7,n - (numels8+numels10)))=1
350 IF (ixs20(8,n - (numels8+numels10)) /= 0) nodtag(ixs20(8,n - (numels8+numels10)))=1
351 IF (ixs20(9,n - (numels8+numels10)) /= 0) nodtag(ixs20(9,n - (numels8+numels10)))=1
353 IF (ixs20(11,n - (numels8+numels10)) /= 0) nodtag(ixs20(11,n - (numels8+numels10)))=1
354 IF (ixs20(12,n - (numels8+numels10)) /= 0) nodtag(ixs20(12,n - (numels8+numels10
371 . iadg,npglob,stat_indxs)
376 clef(1,n)=npglob(19*(n-1)+22)
377 clef(2,n)=npglob(19*(n-1)+1)
379 CALL my_orders(0,work,clef,stat_indxs,stat_numels_g,2)
387 IF (npglob(jj+23) == 4)
THEN
388 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
389 IF(iprt /= iprt0)
THEN
390 WRITE(iugeo,
'(A,I10)')
'/TETRA4/',ipart(4,iprt)
392 .
'# TETRA4ID NOD1 NOD2 NOD3 NOD4'
395 WRITE(iugeo,
'(5I10)') npglob(jj+1),npglob(jj+2),npglob(jj+4),
396 . npglob(jj+8),npglob(jj+6)
398 ELSEIF (npglob(jj+23) == 6)
THEN
399 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
400 IF(iprt /= iprt0)
THEN
401 WRITE(iugeo,
'(A,I10)')
'/PENTA6/',ipart(4,iprt)
403 .
'# PENTA6ID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6'
406 WRITE(iugeo,'(7i10)
') NPGLOB(JJ+1),NPGLOB(JJ+2),NPGLOB(JJ+3),
407 . NPGLOB(JJ+4),NPGLOB(JJ+6),NPGLOB(JJ+7),
410 ELSEIF (NPGLOB(JJ+23) == 8) THEN
411.OR..AND.
IF(IDEL==0(IDEL==1IOFF >= 1)) THEN
412 IF(IPRT /= IPRT0)THEN
413 WRITE(IUGEO,'(a,i10)
')'/brick/
',IPART(4,IPRT)
415 . '# BRICKID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8'
418 WRITE(iugeo,
'(9I10)') npglob(jj+1),npglob(jj+2),npglob(jj+3),
419 . npglob(jj+4),npglob(jj+5),npglob(jj+6),
420 . npglob(jj+7),npglob(jj+8),npglob(jj+9)
422 ELSEIF (npglob(jj+23) == 10)
THEN
423 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
424 IF(iprt /= iprt0)
THEN
425 WRITE(iugeo,
'(A,I10)')
'/TETRA10/',ipart(4,iprt)
429 .
'# NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8 NOD9 NOD10'
432 WRITE(iugeo,
'(I10)') npglob(jj+1)
433 WRITE(iugeo,
'(10I10)') npglob(jj+2),npglob(jj+3),npglob(jj+4),
434 . npglob(jj+5),npglob(jj+6),npglob(jj+7),
435 . npglob(jj+8),npglob(jj+9),npglob(jj+10),
438 ELSEIF (npglob(jj+23) == 16)
THEN
439 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
440 IF(iprt /= iprt0)
THEN
441 WRITE(iugeo,
'(A,I10)')
'/SHEL16/',ipart(4,iprt)
443 .
'#TSHEL16ID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8'
445 .
'# NOD9 NOD10 NOD11 NOD12'
447 . '# NOD13 NOD14 NOD15 NOD16'
450 WRITE(iugeo,
'(9I10)') npglob(jj+1),npglob(jj+2),npglob(jj+3),
451 . npglob(jj+4),npglob(jj+5),npglob(jj+6),
452 . npglob(jj+7), npglob(jj+8),npglob(jj+9)
453 WRITE(iugeo,
'(4I10)') npglob(jj+10),npglob(jj+11),
454 . npglob(jj+12), npglob(jj+13)
455 WRITE(iugeo,
'(4I10)') npglob(jj+14),npglob(jj+15),
456 . npglob(jj+16),npglob(jj+17)
458 ELSEIF (npglob(jj+23) == 20)
THEN
459 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
460 IF(iprt /= iprt0)
THEN
461 WRITE(iugeo,
'(A,I10)')
'/BRIC20/',ipart(4,iprt)
463 .
'#BRICK20ID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8'
465 .
'# NOD9 NOD10 NOD11 NOD12 NOD13 NOD14 NOD15 NOD16'
467 .
'# NOD17 NOD18 NOD19 NOD20'
470 WRITE(iugeo,
'(9I10)') npglob(jj+1),npglob(jj+2),npglob(jj+3),
471 . npglob(jj+4),npglob(jj+5),npglob(jj+6),
472 . npglob(jj+7), npglob(jj+8),npglob
473 WRITE(iugeo,
'(8I10)')npglob(jj+10),npglob(jj+11),
474 . npglob(jj+12),npglob(jj+13),
475 . npglob(jj+14),npglob(jj+15),
476 . npglob(jj+16),npglob(jj+17)
477 WRITE(iugeo,
'(4I10)')npglob(jj+18),npglob(jj+19),
478 . npglob(jj+20),npglob(jj+21)