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