266 use element_mod , only : nixs
267
268
269
270#include "implicit_f.inc"
271
272
273
274#include "com04_c.inc"
275
276
277
278 INTEGER IXS(NIXS,*),IPARTS(*),IXS10(6,*),IXS20(12,*),IXS16(8,*),
279 1 TAGBUF(*),FLAG,IDOM
280
281
282
283 INTEGER I,J,L,NP
284
285
286 np = npart
287
288
289
290
291
292 IF (flag==-1) THEN
293
294 DO j=1,numels8
295 IF (tagbuf(iparts(j)) == 0)THEN
296 DO l=2,9
297 IF (tagbuf(ixs(l,j)+np)<2) tagbuf(ixs(l,j)+np)=0
298 ENDDO
299 ENDIF
300 ENDDO
301
302 DO i=1,numels10
303 j = i + numels8
304 IF (tagbuf(iparts(j)) == 0)THEN
305 DO l=2,9
306 IF (tagbuf(ixs(l,j)+np)<2) tagbuf(ixs(l,j)+np)=0
307 ENDDO
308 DO l=1,6
309 IF (ixs10(l,i) /= 0) THEN
310 IF (tagbuf(ixs10(l,i)+np)<2) tagbuf(ixs10(l,i)+np)=0
311 ENDIF
312 ENDDO
313 ENDIF
314 ENDDO
315
316 DO i=1,numels20
317 j = i + numels8 + numels10
318 IF (tagbuf(iparts(j)) == 0)THEN
319 DO l=2,9
320 IF (tagbuf(ixs(l,j)+np)<2) tagbuf(ixs(l,j)+np)=0
321 ENDDO
322 DO l=1,12
323 IF (ixs20(l,i) /= 0) THEN
324 IF (tagbuf(ixs20(l,i)+np)<2) tagbuf(ixs20(l,i)+np)=0
325 ENDIF
326 ENDDO
327 ENDIF
328 ENDDO
329
330 DO i=1,numels16
331 j = i + numels8 + numels10 + numels20
332 IF (tagbuf(iparts(j)) == 0) THEN
333 DO l=2,9
334 IF (tagbuf(ixs(l,j)+np)<2) tagbuf(ixs(l,j)+np)=0
335 ENDDO
336 DO l=1,8
337 IF (ixs16(l,i) /= 0) THEN
338 IF (tagbuf(ixs16(l,i)+np)<2) tagbuf(ixs16(l,i)+np)=0
339 ENDIF
340 ENDDO
341 ENDIF
342 ENDDO
343
344
345
346
347
348 ELSEIF (flag==0) THEN
349
350 DO j=1,numels8
351 IF (tagbuf(iparts(j)) == 1)THEN
352 DO l=2,9
353 IF (tagbuf(ixs(l,j)+np)<2) tagbuf(ixs(l,j)+np)=1
354 ENDDO
355 ENDIF
356 ENDDO
357
358 DO i=1,numels10
359 j = i + numels8
360 IF (tagbuf(iparts(j)) == 1)THEN
361 DO l=2,9
362 IF (tagbuf(ixs(l,j)+np)<2) tagbuf(ixs(l,j)+np)=1
363 ENDDO
364 DO l=1,6
365 IF (ixs10(l,i) /= 0) THEN
366 IF (tagbuf(ixs10(l,i)+np)<2) tagbuf(ixs10(l,i)+np)=1
367 ENDIF
368 ENDDO
369 ENDIF
370 ENDDO
371
372 DO i=1,numels20
373 j = i + numels8 + numels10
374 IF (tagbuf(iparts(j)) == 1)THEN
375 DO l=2,9
376 IF (tagbuf(ixs(l,j)+np)<2) tagbuf(ixs(l,j)+np)=1
377 ENDDO
378 DO l=1,12
379 IF (ixs20(l,i) /= 0) THEN
380 IF (tagbuf(ixs20(l,i)+np)<2) tagbuf(ixs20(l,i)+np)=1
381 ENDIF
382 ENDDO
383 ENDIF
384 ENDDO
385
386 DO i=1,numels16
387 j = i + numels8 + numels10 + numels20
388 IF (tagbuf(iparts(j)) == 1) THEN
389 DO l=2,9
390 IF (tagbuf(ixs(l,j)+np)<2) tagbuf(ixs(l,j)+np)=1
391 ENDDO
392 DO l=1,8
393 IF (ixs16(l,i) /= 0) THEN
394 IF (tagbuf(ixs16(l,i)+np)<2) tagbuf(ixs16(l,i)+np)=1
395 ENDIF
396 ENDDO
397 ENDIF
398 ENDDO
399
400
401
402
403
404 ELSEIF (flag==1) THEN
405
406 DO j=1,numels8
407 IF (tagbuf(iparts(j)) == 0)THEN
408 DO l=2,9
409 IF (tagbuf(ixs(l,j)+np)==1) tagbuf(ixs(l,j)+np)=1+idom
410 IF (tagbuf(ixs(l,j)+np)>1) THEN
411 IF (tagbuf(ixs(l,j)+np)/=(1+idom)) THEN
412
414 . msgtype=msgerror,
415 . anmode=aninfo,
416 . i2=tagbuf(ixs(l,j)+np)-1,
417 . i1=idom,
418 . c1="NODES")
419 ENDIF
420 ENDIF
421 IF (tagbuf(ixs(l,j)+np)<1) tagbuf(ixs(l,j)+np)=-idom
422 ENDDO
423 ENDIF
424 ENDDO
425
426
427 DO i=1,numels10
428 j = i + numels8
429 IF (tagbuf(iparts(j)) == 0)THEN
430 DO l=2,9
431 IF (tagbuf(ixs(l,j)+np)==1) tagbuf(ixs(l,j)+np)=1+idom
432 IF (tagbuf(ixs(l,j)+np)>1) THEN
433 IF (tagbuf(ixs(l,j)+np)/=(1+idom)) THEN
434
436 . msgtype=msgerror,
437 . anmode=aninfo,
438 . i2=tagbuf(ixs(l,j)+np)-1,
439 . i1=idom,
440 . c1="NODES")
441 ENDIF
442 ENDIF
443 IF (tagbuf(ixs(l,j)+np)<1) tagbuf(ixs(l,j)+np)=-idom
444 ENDDO
445 DO l=1,6
446 IF (ixs10(l,i) /= 0) THEN
447 IF (tagbuf(ixs10(l,i)+np)==1) tagbuf(ixs10(l,i)+np)=1+idom
448 IF (tagbuf(ixs10(l,i)+np)>1) THEN
449 IF (tagbuf(ixs10(l,i)+np)/=(1+idom)) THEN
450
452 . msgtype=msgerror,
453 . anmode=aninfo,
454 . i2=tagbuf(ixs10(l,i)+np)-1,
455 . i1=idom,
456 . c1="NODES")
457 ENDIF
458 ENDIF
459 IF (tagbuf(ixs10(l,i)+np)<1) tagbuf(ixs10(l,i)+np)=-idom
460 ENDIF
461 ENDDO
462 ENDIF
463 ENDDO
464
465
466 DO i=1,numels20
467 j = i + numels8 + numels10
468 IF (tagbuf(iparts(j)) == 0)THEN
469 DO l=2,9
470 IF (tagbuf(ixs(l,j)+np)==1) tagbuf(ixs(l,j)+np)=1+idom
471 IF (tagbuf(ixs(l,j)+np)>1) THEN
472 IF (tagbuf(ixs(l,j)+np)/=(1+idom)) THEN
473
475 . msgtype=msgerror,
476 . anmode=aninfo,
477 . i2=tagbuf(ixs(l,j)+np)-1,
478 . i1=idom,
479 . c1="NODES")
480 ENDIF
481 ENDIF
482 IF (tagbuf(ixs(l,j)+np)<1) tagbuf(ixs(l,j)+np)=-idom
483 ENDDO
484 DO l=1,12
485 IF (ixs20(l,i) /= 0) THEN
486 IF (tagbuf(ixs20(l,i)+np)==1) tagbuf(ixs20(l,i)+np)=1+idom
487 IF (tagbuf(ixs20(l,i)+np)>1) THEN
488 IF (tagbuf(ixs20(l,i)+np)/=(1+idom)) THEN
489
491 . msgtype=msgerror,
492 . anmode=aninfo,
493 . i2=tagbuf(ixs20(l,i)+np)-1,
494 . i1=idom,
495 . c1="NODES")
496 ENDIF
497 ENDIF
498 IF (tagbuf(ixs20(l,i)+np)<1) tagbuf(ixs20(l,i)+np)=-idom
499 ENDIF
500 ENDDO
501 ENDIF
502 ENDDO
503
504
505 DO i=1,numels16
506 j = i + numels8 + numels10 + numels20
507 IF (tagbuf(iparts(j)) == 0) THEN
508 DO l=2,9
509 IF (tagbuf(ixs(l,j)+np)==1) tagbuf
510 IF (tagbuf(ixs(l,j)+np)>1) THEN
511 IF (tagbuf(ixs(l,j)+np)/=(1+idom)) THEN
512
514 . msgtype=msgerror,
515 . anmode=aninfo,
516 . i2=tagbuf(ixs(l,j)+np)-1,
517 . i1=idom,
518 . c1="NODES")
519 ENDIF
520 ENDIF
521 IF (tagbuf(ixs(l,j)+np)<1) tagbuf(ixs(l,j)+np)=-idom
522 ENDDO
523 DO l=1,8
524 IF (ixs16(l,i) /= 0) THEN
525 IF (tagbuf(ixs16(l,i)+np)==1) tagbuf(ixs16(l,i)+np)=1+idom
526 IF (tagbuf(ixs16(l,i)+np)>1) THEN
527 IF (tagbuf(ixs16(l,i)+np)/=(1+idom)) THEN
528
530 . msgtype=msgerror,
531 . anmode=aninfo,
532 . i2=tagbuf(ixs16(l,i)+np)-1,
533 . i1=idom,
534 . c1="NODES")
535 ENDIF
536 ENDIF
537 IF (tagbuf(ixs16(l,i)+np)<1) tagbuf(ixs16(l,i)+np)=-idom
538 ENDIF
539 ENDDO
540 ENDIF
541 ENDDO
542
543
544
545
546
547
548 ELSEIF (flag==2) THEN
549
550 DO j=1,numels8
551 IF (iparts(j+np)/=0)THEN
552 DO l=2,9
553 IF (tagbuf(ixs(l,j)+np)<3) tagbuf(ixs(l,j)+np)=2*iparts(j+np)
554 ENDDO
555 ENDIF
556 ENDDO
557
558 DO i=1,numels10
559 j = i + numels8
560 IF (iparts(j+np)/=0)THEN
561 DO l=2,9
562 IF (tagbuf(ixs(l,j)+np)<3) tagbuf(ixs(l,j)+np)=2*iparts(j+np)
563 ENDDO
564 DO l=1,6
565 IF (ixs10(l,i) /= 0) THEN
566 IF (tagbuf(ixs10(l,i)+np)<3) tagbuf(ixs10(l,i)+np)=2*iparts(j+np)
567 ENDIF
568 ENDDO
569 ENDIF
570 ENDDO
571
572 DO i=1,numels20
573 j = i + numels8 + numels10
574 IF (iparts(j+np)/=0)THEN
575 DO l=2,9
576 IF (tagbuf(ixs(l,j)+np)<3) tagbuf(ixs(l,j)+np)=2*iparts(j+np)
577 ENDDO
578 DO l=1,12
579 IF (ixs20(l,i) /= 0) THEN
580 IF (tagbuf(ixs20(l,i)+np)<3) tagbuf(ixs20(l,i)+np)=2*iparts(j+np)
581 ENDIF
582 ENDDO
583 ENDIF
584 ENDDO
585
586 DO i=1,numels16
587 j = i + numels8 + numels10 + numels20
588 IF (iparts(j+np)/=0)THEN
589 DO l=2,9
590 IF (tagbuf(ixs(l,j)+np)<3) tagbuf(ixs(l,j)+np)=2*iparts(j+np)
591 ENDDO
592 DO l=1,8
593 IF (ixs16(l,i) /= 0) THEN
594 IF (tagbuf(ixs16(l,i)+np)<3) tagbuf(ixs16(l,i)+np)=2*iparts(j+np)
595 ENDIF
596 ENDDO
597 ENDIF
598 ENDDO
599
600 ENDIF
601
602 RETURN
603