44 . IXC ,IXTG ,IXT ,IXP ,IXR ,
46 . SH3TREE ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC,
47 . KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
48 . IPART ,OPT_A ,OPT_O ,KNOD2ELQ ,NOD2ELQ,
49 . X ,KEYSET ,OPT_E ,DELBUF ,IPARTQ)
76 use surface_type_mod ,
only : surface_type
77 use element_mod ,
only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
81#include "implicit_f.inc"
91 TYPE (SET_SCRATCH) :: DELBUF
92 INTEGER CLAUSE_OPERATOR
94 INTEGER OPT_A,OPT_O,OPT_E
95 INTEGER IXS(NIXS,*),IXS10(6,*),
96 . ixq(nixq,*),ixc(nixc,*),ixtg(nixtg,*),ixt
97 . ixp(nixp,*),ixr(nixr
98 . sh4tree(*),sh3tree(*),knod2els(*),knod2elc(*),knod2eltg(*),
99 . knod2elq(*),nod2els(*),nod2elc(*),nod2eltg(*),nod2elq(*),
100 . iparts(*),ipartc(*),ipartg(*),ipart(lipart1,*),ipartq(numelq)
103 CHARACTER(LEN=NCHARFIELD) :: KEYSET
107 INTEGER,
DIMENSION(:),
ALLOCATABLE :: RESULT
108 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NODES
109 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: SURF
111 logical :: empty_condition
115 IF( clause%NB_NODE > 0)
THEN
117 IF( set%NB_NODE > 0 )
THEN
119 ALLOCATE(result(set%NB_NODE + clause%NB_NODE ))
122 * clause%NODE, clause%NB_NODE ,
126 IF (
ALLOCATED(set%NODE))
DEALLOCATE (set%NODE)
127 ALLOCATE(set%NODE(new_size))
129 set%NODE(1:new_size) = result(1:new_size)
136 IF ( clause_operator ==
set_add)
THEN
137 IF (
ALLOCATED(set%NODE))
DEALLOCATE (set%NODE)
138 ALLOCATE(set%NODE(clause%NB_NODE) )
140 set%NB_NODE=clause%NB_NODE
141 set%NODE(1:clause%NB_NODE)=clause%NODE(1:clause%NB_NODE)
148 IF (set%NB_NODE > 0)
THEN
149 IF(
ALLOCATED(set%NODE))
DEALLOCATE(set%NODE)
157 IF( clause%NB_NODENS > 0 )
THEN
159 IF( set%NB_NODENS > 0 )
THEN
161 ALLOCATE(result(set%NB_NODENS + clause%NB_NODENS ))
164 * clause%NODENS, clause%NB_NODENS ,
168 IF (
ALLOCATED(set%NODENS))
DEALLOCATE (set%NODENS)
169 ALLOCATE(set%NODENS(new_size))
171 set%NODENS(1:new_size) = result(1:new_size)
172 set%NB_NODENS=new_size
178 IF ( clause_operator ==
set_add)
THEN
179 IF (
ALLOCATED(set%NODENS))
DEALLOCATE (set%NODENS)
180 ALLOCATE(set%NODENS(clause%NB_NODENS) )
182 set%NB_NODENS=clause%NB_NODENS
183 set%NODENS(1:clause%NB_NODENS)=clause%NODENS(1:clause%NB_NODENS)
190 IF (set%NB_NODENS > 0)
THEN
191 IF(
ALLOCATED(set%NODENS))
DEALLOCATE(set%NODENS)
199 IF( clause%NB_PART > 0)
THEN
201 IF( set%NB_PART > 0 )
THEN
203 ALLOCATE(result(set%NB_PART + clause%NB_PART ))
206 * clause%PART, clause%NB_PART ,
210 IF (
ALLOCATED(set%PART))
DEALLOCATE (set%PART)
211 ALLOCATE(set%PART(new_size))
213 set%PART(1:new_size) = result(1:new_size)
219 IF ( clause_operator ==
set_add)
THEN
220 IF (
ALLOCATED(set%PART))
DEALLOCATE (set%PART)
221 ALLOCATE(set%PART(clause%NB_PART) )
223 set%NB_PART=clause%NB_PART
224 set%PART(1:set%NB_PART)=clause%PART(1:set%NB_PART)
231 IF (set%NB_PART > 0)
THEN
232 IF(
ALLOCATED(set%PART))
DEALLOCATE(set%PART)
240 IF( clause%NB_SOLID > 0)
THEN
242 IF( set%NB_SOLID > 0 )
THEN
244 ALLOCATE(result(set%NB_SOLID + clause%NB_SOLID ))
247 * clause%SOLID, clause%NB_SOLID ,
251 IF (
ALLOCATED(set%SOLID))
DEALLOCATE (set%SOLID)
252 ALLOCATE(set%SOLID(new_size))
254 set%SOLID(1:new_size) = result(1:new_size)
255 set%NB_SOLID=new_size
261 IF ( clause_operator ==
set_add)
THEN
262 IF (
ALLOCATED(set%SOLID))
DEALLOCATE (set%SOLID)
263 ALLOCATE(set%SOLID(clause%NB_SOLID) )
265 set%NB_SOLID=clause%NB_SOLID
266 set%SOLID(1:clause%NB_SOLID)=clause%SOLID(1:clause%NB_SOLID)
273 IF (set%NB_SOLID > 0)
THEN
274 IF(
ALLOCATED(set%SOLID))
DEALLOCATE(set%SOLID)
282 IF( clause%NB_SH4N > 0)
THEN
284 IF( set%NB_SH4N > 0 )
THEN
286 ALLOCATE(result(set%NB_SH4N + clause%NB_SH4N ))
289 * clause%SH4N, clause%NB_SH4N ,
293 IF (
ALLOCATED(set%SH4N))
DEALLOCATE (set%SH4N)
294 ALLOCATE(set%SH4N(new_size))
296 set%SH4N(1:new_size) = result(1:new_size)
303 IF ( clause_operator ==
set_add)
THEN
304 IF (
ALLOCATED(set%SH4N))
DEALLOCATE (set%SH4N)
305 ALLOCATE(set%SH4N(clause%NB_SH4N) )
307 set%NB_SH4N=clause%NB_SH4N
308 set%SH4N(1:clause%NB_SH4N)=clause%SH4N(1:clause%NB_SH4N)
315 IF (set%NB_SH4N > 0)
THEN
316 IF(
ALLOCATED(set%SH4N))
DEALLOCATE(set%SH4N)
324 IF( clause%NB_SH3N > 0)
THEN
326 IF( set%NB_SH3N > 0 )
THEN
328 ALLOCATE(result(set%NB_SH3N + clause%NB_SH3N ))
331 * clause%SH3N, clause%NB_SH3N ,
335 IF (
ALLOCATED(set%SH3N))
DEALLOCATE (set%SH3N)
336 ALLOCATE(set%SH3N(new_size))
338 set%SH3N(1:new_size) = result(1:new_size)
345 IF ( clause_operator ==
set_add)
THEN
346 IF (
ALLOCATED(set%SH3N))
DEALLOCATE (set%SH3N)
347 ALLOCATE(set%SH3N(clause%NB_SH3N) )
349 set%NB_SH3N=clause%NB_SH3N
350 set%SH3N(1:clause%NB_SH3N) = clause%SH3N(1:clause%NB_SH3N)
357 IF (set%NB_SH3N > 0)
THEN
358 IF(
ALLOCATED(set%SH3N))
DEALLOCATE(set%SH3N)
366 IF( clause%NB_QUAD > 0)
THEN
368 IF( set%NB_QUAD > 0 )
THEN
370 ALLOCATE(result(set%NB_QUAD + clause%NB_QUAD ))
373 * clause%QUAD, clause%NB_QUAD ,
377 IF (
ALLOCATED(set%QUAD))
DEALLOCATE (set%QUAD)
378 ALLOCATE(set%QUAD(new_size))
380 set%QUAD(1:new_size) = result(1:new_size)
387 IF ( clause_operator ==
set_add)
THEN
388 IF (
ALLOCATED(set%QUAD))
DEALLOCATE (set%QUAD)
389 ALLOCATE(set%QUAD(clause%NB_QUAD) )
391 set%NB_QUAD=clause%NB_QUAD
392 set%QUAD(1:clause%NB_QUAD)=clause%QUAD(1:clause%NB_QUAD)
399 IF (set%NB_QUAD > 0)
THEN
400 IF(
ALLOCATED(set%QUAD))
DEALLOCATE(set%QUAD)
408 IF( clause%NB_TRIA > 0)
THEN
410 IF( set%NB_TRIA > 0 )
THEN
412 ALLOCATE(result(set%NB_TRIA + clause%NB_TRIA ))
415 * clause%TRIA, clause%NB_TRIA ,
419 IF (
ALLOCATED(set%TRIA))
DEALLOCATE (set%TRIA)
420 ALLOCATE(set%TRIA(new_size))
422 set%TRIA(1:new_size) = result(1:new_size)
429 IF ( clause_operator ==
set_add)
THEN
430 IF (
ALLOCATED(set%TRIA))
DEALLOCATE (set%TRIA)
431 ALLOCATE(set%TRIA(clause%NB_TRIA) )
433 set%NB_TRIA=clause%NB_TRIA
434 set%TRIA(1:clause%NB_TRIA) = clause%TRIA(1:clause%NB_TRIA)
441 IF (set%NB_TRIA > 0)
THEN
442 IF(
ALLOCATED(set%TRIA))
DEALLOCATE(set%TRIA)
450 IF( clause%NB_BEAM > 0)
THEN
452 IF( set%NB_BEAM > 0 )
THEN
454 ALLOCATE(result(set%NB_BEAM + clause%NB_BEAM ))
457 * clause%BEAM, clause%NB_BEAM ,
461 IF (
ALLOCATED(set%BEAM))
DEALLOCATE (set%BEAM)
462 ALLOCATE(set%BEAM(new_size))
464 set%BEAM(1:new_size) = result(1:new_size)
471 IF ( clause_operator ==
set_add)
THEN
472 IF (
ALLOCATED(set%BEAM))
DEALLOCATE (set%BEAM)
473 ALLOCATE(set%BEAM(clause%NB_BEAM) )
475 set%NB_BEAM=clause%NB_BEAM
476 set%BEAM(1:clause%NB_BEAM) = clause%BEAM(1:clause%NB_BEAM)
482 IF (set%NB_BEAM > 0)
THEN
483 IF(
ALLOCATED(set%BEAM))
DEALLOCATE(set%BEAM)
491 IF( clause%NB_TRUSS > 0)
THEN
493 IF( set%NB_TRUSS > 0 )
THEN
495 ALLOCATE(result(set%NB_TRUSS + clause%NB_TRUSS ))
498 * clause%TRUSS, clause%NB_TRUSS ,
502 IF (
ALLOCATED(set%TRUSS))
DEALLOCATE (set%TRUSS)
503 ALLOCATE(set%TRUSS(new_size))
505 set%TRUSS(1:new_size) = result(1:new_size)
506 set%NB_TRUSS=new_size
512 IF ( clause_operator ==
set_add)
THEN
513 IF (
ALLOCATED(set%TRUSS))
DEALLOCATE (set%TRUSS)
514 ALLOCATE(set%TRUSS(clause%NB_TRUSS) )
516 set%NB_TRUSS=clause%NB_TRUSS
517 set%TRUSS(1:clause%NB_TRUSS) = clause%TRUSS(1:clause%NB_TRUSS)
524 IF (set%NB_TRUSS > 0)
THEN
525 IF(
ALLOCATED(set%TRUSS))
DEALLOCATE(set%TRUSS)
533 IF( clause%NB_SPRING > 0)
THEN
535 IF( set%NB_SPRING > 0 )
THEN
537 ALLOCATE(result(set%NB_SPRING + clause%NB_SPRING ))
540 * clause%SPRING, clause%NB_SPRING ,
544 IF (
ALLOCATED(set%SPRING))
DEALLOCATE (set%SPRING)
545 ALLOCATE(set%SPRING(new_size))
547 set%SPRING(1:new_size) = result(1:new_size)
548 set%NB_SPRING=new_size
554 IF ( clause_operator ==
set_add)
THEN
555 IF (
ALLOCATED(set%SPRING))
DEALLOCATE (set%SPRING)
556 ALLOCATE(set%SPRING(clause%NB_SPRING) )
558 set%NB_SPRING=clause%NB_SPRING
559 set%SPRING(1:clause%NB_SPRING)=clause%SPRING(1:clause%NB_SPRING)
565 IF (set%NB_SPRING > 0)
THEN
566 IF(
ALLOCATED(set%SPRING))
DEALLOCATE(set%SPRING)
579 IF ( set%NB_ELLIPSE > 0 )
THEN
581 set%ELLIPSE_IAD_BUFR = clause%ELLIPSE_IAD_BUFR
582 set%ELLIPSE_ID_MADYMO = clause%ELLIPSE_ID_MADYMO
583 set%ELLIPSE_N = clause%ELLIPSE_N
584 set%ELLIPSE_XC = clause%ELLIPSE_XC
585 set%ELLIPSE_YC = clause%ELLIPSE_YC
586 set%ELLIPSE_ZC = clause%ELLIPSE_ZC
587 set%ELLIPSE_A = clause%ELLIPSE_A
588 set%ELLIPSE_B = clause%ELLIPSE_B
589 set%ELLIPSE_C = clause%ELLIPSE_C
590 set%EXT_ALL = clause%EXT_ALL
591 CALL my_alloc(set%ELLIPSE_SKEW,9)
592 set%ELLIPSE_SKEW(1:9) = clause%ELLIPSE_SKEW(1:9)
597 ELSEIF ( set%NB_PLANE > 0 )
THEN
599 set%PLANE_IAD_BUFR = clause%PLANE_IAD_BUFR
600 set%PLANE_XM = clause%PLANE_XM
601 set%PLANE_YM = clause%PLANE_YM
602 set%PLANE_ZM = clause%PLANE_ZM
603 set%PLANE_XM1 = clause%PLANE_XM1
604 set%PLANE_YM1 = clause%PLANE_YM1
605 set%PLANE_ZM1 = clause%PLANE_ZM1
606 set%EXT_ALL = clause%EXT_ALL
611 empty_condition = (clause%nb_surf_seg==0)
612 IF( clause%NB_SURF_SEG > 0)
THEN
613 empty_condition = (set%nb_surf_seg==0)
614 IF( set%NB_SURF_SEG > 0 )
THEN
621 IF ( clause_operator ==
set_add)
THEN
623 CALL union_surface( set%SURF_NODES(1,1), set%SURF_NODES(1,2),
624 . set%SURF_NODES(1,3), set%SURF_NODES(1,4),
625 . set%SURF_ELTYP, set%SURF_ELEM, set%NB_SURF_SEG,
627 . clause%SURF_NODES(1,3), clause%SURF_NODES(1,4),
628 . clause%SURF_ELTYP, clause%SURF_ELEM, clause%NB_SURF_SEG,
630 call surface_type( empty_condition,clause_operator,clause,set )
634 CALL delete_surface(set%SURF_NODES(1,1), set%SURF_NODES(1,2),
635 . set%SURF_NODES(1,3), set%SURF_NODES(1,4),
636 . set%SURF_ELTYP, set%SURF_ELEM, set%NB_SURF_SEG,
637 . clause%SURF_NODES(1,1), clause%SURF_NODES(1,2),
638 . clause%SURF_NODES(1,3), clause%SURF_NODES(1,4),
639 . clause%SURF_ELTYP, clause%SURF_ELEM, clause%NB_SURF_SEG,
641 call surface_type( empty_condition,clause_operator,clause,set )
645 CALL intersect_surface( set%SURF_NODES(1,1), set%SURF_NODES(1,2),
646 . set%SURF_NODES(1,3), set%SURF_NODES(1,4),
647 . set%SURF_ELTYP, set%SURF_ELEM, set%NB_SURF_SEG,
648 . clause%SURF_NODES(1,1), clause%SURF_NODES(1,2),
649 . clause%SURF_NODES(1,3), clause%SURF_NODES(1,4),
650 . clause%SURF_ELTYP, clause%SURF_ELEM, clause%NB_SURF_SEG,
652 call surface_type( empty_condition,clause_operator,clause,set )
654 print*,
'Unknown clause operator'
657 DEALLOCATE(set%SURF_NODES)
658 DEALLOCATE(set%SURF_ELTYP)
659 DEALLOCATE(set%SURF_ELEM)
661 CALL my_alloc(set%SURF_NODES,ns,4)
662 CALL my_alloc (set%SURF_ELTYP,ns)
663 CALL my_alloc (set%SURF_ELEM,ns)
667 CALL get_merged_surface(set%SURF_NODES(1,1),
668 . set%SURF_NODES(1,2),
669 . set%SURF_NODES(1,3),
670 . set%SURF_NODES(1,4),
676 IF ( clause_operator ==
set_add)
THEN
677 IF (
ALLOCATED (set%SURF_NODES) )
DEALLOCATE(set%SURF_NODES)
678 IF (
ALLOCATED (set%SURF_ELTYP) )
DEALLOCATE(set%SURF_ELTYP)
679 IF (
ALLOCATED (set%SURF_ELEM) )
DEALLOCATE(set%SURF_ELEM)
681 new_size = clause%NB_SURF_SEG
682 CALL my_alloc(set%SURF_NODES,new_size,4)
683 CALL my_alloc (set%SURF_ELTYP,new_size)
684 CALL my_alloc (set%SURF_ELEM,new_size)
686 set%NB_SURF_SEG = new_size
687 set%SURF_NODES(1:new_size,1:4) = clause%SURF_NODES(1:new_size,1:4)
688 set%SURF_ELTYP(1:new_size) = clause%SURF_ELTYP(1:new_size)
689 set%SURF_ELEM(1:new_size) = clause%SURF_ELEM(1:new_size)
690 call surface_type( empty_condition,clause_operator,clause,set )
695 IF (set%NB_SURF_SEG > 0)
THEN
696 IF(
ALLOCATED(set%SURF_NODES))
DEALLOCATE(set%SURF_NODES)
697 IF(
ALLOCATED(set%SURF_ELTYP))
DEALLOCATE(set%SURF_ELTYP)
698 IF(
ALLOCATED(set%SURF_ELEM))
DEALLOCATE(set%SURF_ELEM)
700 call surface_type( empty_condition,clause_operator,clause,set )
708 IF( clause%NB_LINE_SEG > 0)
THEN
710 IF( set%NB_LINE_SEG > 0 )
THEN
717 IF ( clause_operator ==
set_add)
THEN
719 CALL union_line( set%LINE_NODES(1,1), set%LINE_NODES(1,2),
720 . set%LINE_ELTYP, set%LINE_ELEM, set%NB_LINE_SEG,
721 . clause%LINE_NODES(1,1), clause%LINE_NODES(1,2),
722 . clause%LINE_ELTYP, clause%LINE_ELEM, clause%NB_LINE_SEG,
727 CALL delete_line ( set%LINE_NODES(1,1), set%LINE_NODES(1,2),
728 . set%LINE_ELTYP, set%LINE_ELEM, set%NB_LINE_SEG,
729 . clause%LINE_NODES(1,1), clause%LINE_NODES(1,2),
730 . clause%LINE_ELTYP, clause%LINE_ELEM, clause%NB_LINE_SEG,
735 CALL intersect_line ( set%LINE_NODES(1,1), set%LINE_NODES(1,2),
736 . set%LINE_ELTYP, set%LINE_ELEM, set%NB_LINE_SEG,
737 . clause%LINE_NODES(1,1), clause%LINE_NODES(1,2),
738 . clause%LINE_ELTYP, clause%LINE_ELEM, clause%NB_LINE_SEG,
741 print*,
'Unknown clause operator'
744 DEALLOCATE(set%LINE_NODES)
745 DEALLOCATE(set%LINE_ELTYP)
746 DEALLOCATE(set%LINE_ELEM)
748 CALL my_alloc(set%LINE_NODES,new_size,4)
749 CALL my_alloc (set%LINE_ELTYP,new_size)
750 CALL my_alloc (set%LINE_ELEM,new_size)
752 set%NB_LINE_SEG = new_size
754 CALL get_merged_lines (set%LINE_NODES(1,1),
755 . set%LINE_NODES(1,2),
761 IF ( clause_operator ==
set_add)
THEN
762 IF (
ALLOCATED (set%LINE_NODES) )
DEALLOCATE(set%LINE_NODES)
763 IF (
ALLOCATED (set%LINE_ELTYP) )
DEALLOCATE(set%LINE_ELTYP)
764 IF (
ALLOCATED (set%LINE_ELEM) )
DEALLOCATE(set%LINE_ELEM)
766 new_size = clause%NB_LINE_SEG
767 CALL my_alloc(set%LINE_NODES,new_size,2)
768 CALL my_alloc (set%LINE_ELTYP,new_size)
769 CALL my_alloc (set%LINE_ELEM,new_size)
771 set%NB_LINE_SEG = new_size
772 set%LINE_NODES(1:new_size,1:2) = clause%LINE_NODES(1:new_size,1:2)
773 set%LINE_ELTYP(1:new_size) = clause%LINE_ELTYP(1:new_size)
774 set%LINE_ELEM(1:new_size) = clause%LINE_ELEM(1:new_size)
780 IF (set%NB_LINE_SEG > 0)
THEN
781 IF(
ALLOCATED(set%LINE_NODES))
DEALLOCATE(set%LINE_NODES)
782 IF(
ALLOCATED(set%LINE_ELTYP))
DEALLOCATE(set%LINE_ELTYP)
783 IF(
ALLOCATED(set%LINE_ELEM))
DEALLOCATE(set%LINE_ELEM)
831 . ixs ,ixs10 ,sh4tree ,sh3tree ,ixc ,
832 . ixtg ,knod2els ,nod2els ,knod2elc ,nod2elc ,
833 . knod2eltg ,nod2eltg ,ipartc ,ipartg ,iparts ,
834 . ipart ,set ,opt_a ,opt_o ,ixq ,
835 . knod2elq ,nod2elq ,x ,keyset ,delbuf ,
839 IF(.NOT.
ALLOCATED(set%SURF_NODES))
ALLOCATE(set%SURF_NODES(1,4))
840 IF(.NOT.
ALLOCATED(set%SURF_ELTYP))
ALLOCATE(set%SURF_ELTYP(1))
841 IF(.NOT.
ALLOCATED(set%SURF_ELEM))
ALLOCATE(set%SURF_ELEM(1))
842 IF(.NOT.
ALLOCATED(delbuf%SURF))
ALLOCATE(delbuf%SURF(1,6))
844 CALL union_surface(set%SURF_NODES(1,1), set%SURF_NODES(1,2),
845 . set%SURF_NODES(1,3), set%SURF_NODES(1,4),
846 . set%SURF_ELTYP, set%SURF_ELEM, set%NB_SURF_SEG,
847 . delbuf%SURF(1,1), delbuf%SURF(1,2),
848 . delbuf%SURF(1,3), delbuf%SURF(1,4),
849 . delbuf%SURF(1,5), delbuf%SURF(1,6), delbuf%SZ_SURF,
852 IF(
ALLOCATED(set%SURF_NODES))
DEALLOCATE(set%SURF_NODES)
853 IF(
ALLOCATED(set%SURF_ELTYP))
DEALLOCATE(set%SURF_ELTYP)
854 IF(
ALLOCATED(set%SURF_ELEM))
DEALLOCATE(set%SURF_ELEM)
855 IF(
ALLOCATED(delbuf%SURF))
DEALLOCATE(delbuf%SURF)
857 CALL my_alloc(set%SURF_NODES,ns,4)
858 CALL my_alloc(set%SURF_ELTYP,ns)
859 CALL my_alloc(set%SURF_ELEM,ns)
863 CALL get_merged_surface(set%SURF_NODES(1,1),
864 . set%SURF_NODES(1,2),
866 . set%SURF_NODES(1,4),
879 IF(.NOT.
ALLOCATED(set%LINE_NODES))
ALLOCATE(set%LINE_NODES(1,2))
880 IF(.NOT.
ALLOCATED(set%LINE_ELTYP))
ALLOCATE(set%LINE_ELTYP(1))
881 IF(.NOT.
ALLOCATED(set%LINE_ELEM))
ALLOCATE(set%LINE_ELEM(1))
882 IF(.NOT.
ALLOCATED(delbuf%LINE))
ALLOCATE(delbuf%LINE(1,4))
884 CALL union_line(set%LINE_NODES(1,1), set%LINE_NODES(1,2),
885 . set%LINE_ELTYP, set%LINE_ELEM, set%NB_LINE_SEG,
886 . delbuf%LINE(1,1), delbuf%LINE(1,2),
887 . delbuf%LINE(1,3), delbuf%LINE(1,4), delbuf%SZ_LINE,
890 IF(
ALLOCATED(set%LINE_NODES))
DEALLOCATE(set%LINE_NODES)
891 IF(
ALLOCATED(set%LINE_ELTYP))
DEALLOCATE(set%LINE_ELTYP)
892 IF(
ALLOCATED(set%LINE_ELEM))
DEALLOCATE(set%LINE_ELEM)
893 IF(
ALLOCATED(delbuf%LINE))
DEALLOCATE(delbuf%LINE)
895 CALL my_alloc(set%LINE_NODES,new_size,4)
896 CALL my_alloc (set%LINE_ELTYP,new_size)
897 CALL my_alloc (set%LINE_ELEM,new_size)
899 set%NB_LINE_SEG = new_size
901 CALL get_merged_lines (set%LINE_NODES(1,1),
902 . set%LINE_NODES(1,2),
913 IF(.NOT.
ALLOCATED(set%LINE_NODES))
ALLOCATE(set%LINE_NODES(1,2))
914 IF(.NOT.
ALLOCATED(set%LINE_ELTYP))
ALLOCATE(set%LINE_ELTYP(1))
915 IF(.NOT.
ALLOCATED(set%LINE_ELEM))
ALLOCATE(set%LINE_ELEM(1))
916 IF(.NOT.
ALLOCATED(delbuf%LINE))
ALLOCATE(delbuf%LINE(1,4))
919 CALL union_line(set%LINE_NODES(1,1), set%LINE_NODES(1,2),
920 . set%LINE_ELTYP, set%LINE_ELEM, set%NB_LINE_SEG,
921 . delbuf%LINE(1,1), delbuf%LINE(1,2),
922 . delbuf%LINE(1,3), delbuf%LINE(1,4), delbuf%SZ_LINE,
925 IF(
ALLOCATED(set%LINE_NODES))
DEALLOCATE(set%LINE_NODES)
926 IF(
ALLOCATED(set%LINE_ELTYP))
DEALLOCATE(set%LINE_ELTYP)
927 IF(
ALLOCATED(set%LINE_ELEM))
DEALLOCATE(set%LINE_ELEM)
928 IF(
ALLOCATED(delbuf%LINE))
DEALLOCATE(delbuf%LINE)
930 CALL my_alloc(set%LINE_NODES,new_size,4)
931 CALL my_alloc (set%LINE_ELTYP,new_size)
932 CALL my_alloc (set%LINE_ELEM,new_size)
934 set%NB_LINE_SEG = new_size
936 CALL get_merged_lines (set%LINE_NODES(1,1),
937 . set%LINE_NODES(1,2),