36 . IPART_STATE,NODTAG,STAT_INDXS,
37 . IPARG, LENGS,IXS10,IXS16,IXS20,
44 use element_mod ,
only : nixs
48#include "implicit_f.inc"
63 INTEGER ITAB(*), IPART(LIPART1,*),
64 . IGEO(NPROPGI,*), IXS(NIXS,*),
65 . IPARTS(*), IPART_STATE(*),
66 . nodtag(*), stat_indxs(*),
67 . iparg(nparg,*),lengs,ixs10(6,*),ixs16(8,*),
69 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
73 INTEGER I, N, JJ, IPRT, , K
74 INTEGER NG, NEL, NFT, LFT, LLT, ITY, ISOLNOD, IOFF
75 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IADG
76 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IADD
77 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NP
78 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NPGLOB
79 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: CLEF
81 TYPE(g_bufel_) ,
POINTER :: GBUF
85 CALL my_alloc(iadg,nspmd,npart)
86 CALL my_alloc(iadd,npart+1)
87 CALL my_alloc(np,24*numelsg)
88 CALL my_alloc(npglob,24*numelsg)
89 CALL my_alloc(clef,2,numelsg)
92 npglob(1:24*numelsg) = 0
98 isolnod = iparg(28,ng)
101 gbuf => elbuf_tab(ng)%GBUF
109 IF(ipart_state(iprt)==0)cycle
111 np(jj+1) = ixs(nixs,n)
112 IF (isolnod == 10)
THEN
113 np(jj+2) = itab(ixs(2,n))
114 np(jj+3) = itab(ixs(4,n))
115 np(jj+4) = itab(ixs(7,n))
116 np(jj+5) = itab(ixs(6,n))
117 IF(ixs10(1,n - numels8) /= 0)
THEN
118 np(jj+6) = itab(ixs10(1,n - numels8))
122 IF(ixs10(2,n - numels8) /= 0)
THEN
123 np(jj+7) = itab(ixs10(2,n - numels8))
127 IF(ixs10(3,n - numels8) /= 0)
THEN
132 IF(ixs10(4,n - numels8) /= 0)
THEN
133 np(jj+9) = itab(ixs10(4,n - numels8))
137 IF(ixs10(5,n - numels8) /= 0)
THEN
138 np(jj+10) = itab(ixs10(5,n - numels8))
142 IF(ixs10(6,n - numels8) /= 0)
THEN
143 np(jj+11) = itab(ixs10(6,n - numels8))
157 ELSEIF (isolnod == 16)
THEN
158 np(jj+2) = itab(ixs(2,n))
159 np(jj+3) = itab(ixs(3,n))
160 np(jj+4) = itab(ixs(4,n))
161 np(jj+5) = itab(ixs(5,n))
162 np(jj+6) = itab(ixs(6,n))
163 np(jj+7) = itab(ixs(7,n))
164 np(jj+8) = itab(ixs(8,n))
165 np(jj+9) = itab(ixs(9,n))
166 IF(ixs16(1,n - (numels8+numels10+numels20)) /= 0)
THEN
167 np(jj+10) = itab(ixs16(1,n - (numels8+numels10+numels20)))
171 IF(ixs16(2,n - (numels8+numels10+numels20)) /= 0)
THEN
172 np(jj+11) = itab(ixs16(2,n - (numels8+numels10+numels20)))
176 IF(ixs16(3,n - (numels8+numels10+numels20)) /= 0)
THEN
177 np(jj+12) = itab(ixs16(3,n - (numels8+numels10+numels20)))
181 IF(ixs16(4,n - (numels8+numels10+numels20)) /= 0)
THEN
182 np(jj+13) = itab(ixs16(4,n - (numels8+numels10+numels20)))
186 IF(ixs16(5,n - (numels8+numels10+numels20)) /= 0)
THEN
187 np(jj+14) = itab(ixs16(5,n - (numels8+numels10+numels20)))
191 IF(ixs16(6,n - (numels8+numels10+numels20)) /= 0)
THEN
192 np(jj+15) = itab(ixs16(6,n - (numels8+numels10+numels20)))
196 IF(ixs16(7,n - (numels8+numels10+numels20)) /= 0)
THEN
197 np(jj+16) = itab(ixs16(7,n - (numels8+numels10+numels20)))
201 IF(ixs16(8,n - (numels8+numels10+numels20)) /= 0)
THEN
202 np(jj+17) = itab(ixs16(8,n - (numels8+numels10+numels20)))
210 ELSEIF (isolnod == 20)
THEN
211 np(jj+2) = itab(ixs(2,n))
212 np(jj+3) = itab(ixs(3,n))
213 np(jj+4) = itab(ixs(4,n))
214 np(jj+5) = itab(ixs(5,n))
215 np(jj+6) = itab(ixs(6,n))
216 np(jj+7) = itab(ixs(7,n))
217 np(jj+8) = itab(ixs(8,n))
218 np(jj+9) = itab(ixs(9,n))
219 IF(ixs20(1,n - (numels8+numels10)) /= 0)
THEN
220 np(jj+10) = itab(ixs20(1,n - (numels8+numels10)))
224 IF(ixs20(2,n - (numels8+numels10)) /= 0)
THEN
225 np(jj+11) = itab(ixs20(2,n - (numels8+numels10)))
229 IF(ixs20(3,n - (numels8+numels10)) /= 0)
THEN
230 np(jj+12) = itab(ixs20(3,n - (numels8+numels10)))
234 IF(ixs20(4,n - (numels8+numels10)) /= 0)
THEN
235 np(jj+13) = itab(ixs20(4,n - (numels8+numels10)))
239 IF(ixs20(5,n - (numels8+numels10)) /= 0)
THEN
240 np(jj+14) = itab(ixs20(5,n - (numels8+numels10)))
244 IF(ixs20(6,n - (numels8+numels10)) /= 0)
THEN
245 np(jj+15) = itab(ixs20(6,n - (numels8+numels10)))
249 IF(ixs20(7,n - (numels8+numels10)) /= 0)
THEN
250 np(jj+16) = itab(ixs20(7,n - (numels8+numels10)))
254 IF(ixs20(8,n - (numels8+numels10)) /= 0)
THEN
255 np(jj+17) = itab(ixs20(8,n - (numels8+numels10)))
259 IF(ixs20(9,n - (numels8+numels10)) /= 0)
THEN
260 np(jj+18) = itab(ixs20(9,n - (numels8+numels10)))
264 IF(ixs20(10,n - (numels8+numels10)) /= 0)
THEN
265 np(jj+19) = itab(ixs20(10,n - (numels8+numels10)))
269 IF(ixs20(11,n - (numels8+numels10)) /= 0)
THEN
270 np(jj+20) = itab(ixs20(11,n - (numels8+numels10)))
274 IF(ixs20(12,n - (numels8+numels10)) /= 0)
THEN
275 np(jj+21) = itab(ixs20(12,n - (numels8+numels10)))
280 np(jj+2) = itab(ixs(2,n))
281 np(jj+3) = itab(ixs(3,n))
282 np(jj+4) = itab(ixs(4,n))
283 np(jj+5) = itab(ixs(5,n))
284 np(jj+6) = itab(ixs(6,n))
285 np(jj+7) = itab(ixs(7,n))
286 np(jj+8) = itab(ixs(8,n))
287 np(jj+9) = itab(ixs(9,n))
303 np(jj+24) = iabs(nint(gbuf%OFF(i)))
306 stat_numels =stat_numels+1
308 IF (isolnod == 10)
THEN
313 IF (ixs10(1,n - numels8) /= 0) nodtag(ixs10(1,n - numels8))=1
314 IF (ixs10(2,n - numels8) /= 0) nodtag(ixs10(2,n - numels8))=1
315 IF (ixs10(3,n - numels8) /= 0) nodtag(ixs10(3,n - numels8))=1
316 IF (ixs10(4,n - numels8) /= 0) nodtag(ixs10(4,n - numels8))=1
317 IF (ixs10(5,n - numels8) /= 0) nodtag(ixs10(5,n - numels8))=1
318 IF (ixs10(6,n - numels8) /= 0) nodtag(ixs10(6,n - numels8))=1
319 ELSEIF (isolnod == 16)
THEN
328 IF (ixs16(1,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(1,n - (numels8+numels10+numels20)))=1
329 IF (ixs16(2,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(2,n - (numels8+numels10+numels20)))=1
330 IF (ixs16(3,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(3,n - (numels8+numels10+numels20)))=1
331 IF (ixs16(4,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(4,n - (numels8+numels10+numels20)))=1
332 IF (ixs16(5,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(5,n - (numels8+numels10+numels20)))=1
333 IF (ixs16(6,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(6,n - (numels8+numels10+numels20)))=1
334 IF (ixs16(7,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(7,n - (numels8+numels10+numels20)))=1
335 IF (ixs16(8,n - (numels8+numels10+numels20)) /= 0) nodtag(ixs16(8,n - (numels8+numels10+numels20)))=1
336 ELSEIF (isolnod == 20)
THEN
345 IF (ixs20(1,n - (numels8+numels10)) /= 0) nodtag(ixs20(1,n - (numels8+numels10)))=1
346 IF (ixs20(2,n - (numels8+numels10)) /= 0) nodtag(ixs20(2,n - (numels8+numels10)))=1
347 IF (ixs20(3,n - (numels8+numels10)) /= 0) nodtag(ixs20(3,n - (numels8+numels10)))=1
348 IF (ixs20(4,n - (numels8+numels10)) /= 0) nodtag(ixs20(4,n - (numels8+numels10)))=1
349 IF (ixs20(5,n - (numels8+numels10)) /= 0) nodtag(ixs20(5,n - (numels8+numels10)))=1
350 IF (ixs20(6,n - (numels8+numels10)) /= 0) nodtag(ixs20(6,n - (numels8+numels10)))=1
351 IF (ixs20(7,n - (numels8+numels10)) /= 0) nodtag(ixs20(7,n - (numels8+numels10)))=1
354 IF (ixs20(10,n - (numels8+numels10)) /= 0) nodtag(ixs20
355 IF (ixs20(11,n - (numels8+numels10)) /= 0) nodtag(ixs20(11,n - (numels8+numels10)))=1
356 IF (ixs20(12,n - (numels8+numels10)) /= 0) nodtag(ixs20(12,n - (numels8+numels10)))=1
373 . iadg,npglob,stat_indxs)
378 clef(1,n)=npglob(19*(n-1)+22)
379 clef(2,n)=npglob(19*(n-1)+1)
381 CALL my_orders(0,work,clef,stat_indxs,stat_numels_g,2)
389 IF (npglob(jj+23) == 4)
THEN
390 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
391 IF(iprt /= iprt0)
THEN
392 WRITE(iugeo,
'(A,I10)')
'/TETRA4/',ipart(4,iprt)
394 .
'# TETRA4ID NOD1 NOD2 NOD3 NOD4'
397 WRITE(iugeo,
'(5I10)') npglob(jj+1),npglob(jj+2),npglob(jj+4),
398 . npglob(jj+8),npglob(jj+6)
400 ELSEIF (npglob(jj+23) == 6)
THEN
401 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
402 IF(iprt /= iprt0)
THEN
403 WRITE(iugeo,
'(A,I10)')
'/PENTA6/',ipart(4,iprt)
405 .
'# PENTA6ID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6'
408 WRITE(iugeo,
'(7I10)') npglob(jj+1),npglob(jj+2),npglob(jj+3),
409 . npglob(jj+4),npglob(jj+6),npglob(jj+7),
412 ELSEIF (npglob(jj+23) == 8)
THEN
413 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
414 IF(iprt /= iprt0)
THEN
415 WRITE(iugeo,
'(A,I10)')
'/BRICK/',ipart(4,iprt)
417 .
'# BRICKID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8'
420 WRITE(iugeo,
'(9I10)') npglob(jj+1),npglob(jj+2),npglob(jj+3),
421 . npglob(jj+4),npglob(jj+5),npglob(jj+6),
422 . npglob(jj+7),npglob(jj+8),npglob(jj+9)
424 ELSEIF (npglob(jj+23) == 10)
THEN
425 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
426 IF(iprt /= iprt0)
THEN
427 WRITE(iugeo,
'(A,I10)')
'/TETRA10/',ipart(4,iprt)
431 .
'# NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8 NOD9 NOD10'
434 WRITE(iugeo,
'(I10)') npglob(jj+1)
435 WRITE(iugeo,
'(10I10)') npglob(jj+2),npglob(jj+3),npglob(jj+4),
436 . npglob(jj+5),npglob(jj+6),npglob(jj+7),
437 . npglob(jj+8),npglob(jj+9),npglob(jj+10),
440 ELSEIF (npglob(jj+23) == 16)
THEN
441 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
442 IF(iprt /= iprt0)
THEN
443 WRITE(iugeo,
'(A,I10)')
'/SHEL16/',ipart(4,iprt)
445 .
'#TSHEL16ID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8'
447 .
'# NOD9 NOD10 NOD11 NOD12'
449 .
'# NOD13 NOD14 NOD15 NOD16'
452 WRITE(iugeo,
'(9I10)') npglob(jj+1),npglob(jj+2),npglob(jj+3),
453 . npglob(jj+4),npglob(jj+5),npglob(jj+6),
454 . npglob(jj+7), npglob(jj+8),npglob(jj+9)
455 WRITE(iugeo,
'(4I10)') npglob(jj+10),npglob(jj+11),
456 . npglob(jj+12), npglob(jj+13)
457 WRITE(iugeo,
'(4I10)') npglob(jj+14),npglob(jj+15),
458 . npglob(jj+16),npglob(jj+17)
460 ELSEIF (npglob(jj+23) == 20)
THEN
461 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
462 IF(iprt /= iprt0)
THEN
463 WRITE(iugeo,
'(A,I10)')
'/BRIC20/',ipart(4,iprt)
465 .
'#BRICK20ID NOD1 NOD2 NOD3 NOD4 NOD5 NOD6 NOD7 NOD8'
467 .
'# NOD9 NOD10 NOD11 NOD12 NOD13 NOD14 NOD15 NOD16'
469 .
'# NOD17 NOD18 NOD19 NOD20'
472 WRITE(iugeo,
'(9I10)') npglob(jj+1),npglob(jj+2),npglob(jj+3),
473 . npglob(jj+4),npglob(jj+5),npglob(jj+6),
474 . npglob(jj+7), npglob(jj+8),npglob(jj+9)
475 WRITE(iugeo,
'(8I10)')npglob(jj+10),npglob(jj+11),
476 . npglob(jj+12),npglob(jj+13),
477 . npglob(jj+14),npglob(jj+15),
478 . npglob(jj+16),npglob(jj+17)
479 WRITE(iugeo,
'(4I10)')npglob(jj+18),npglob(jj+19),
480 . npglob(jj+20),npglob(jj+21)