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 )
76 use surface_type_mod ,
only
80#include "implicit_f.inc"
90 TYPE (SET_SCRATCH) :: DELBUF
91 INTEGER CLAUSE_OPERATOR
93 INTEGER OPT_A,OPT_O,OPT_E
94 INTEGER IXS(NIXS,*),IXS10(6,*),
95 . ixq(nixq,*),ixc(nixc,*),ixtg(nixtg,*),ixt(nixt,*),
96 . ixp(nixp,*),ixr(nixr,*),
97 . sh4tree(*),sh3tree(*),knod2els(*),knod2elc(*),knod2eltg(*),
98 . knod2elq(*),nod2els(*),nod2elc(*),nod2eltg(*),nod2elq(*),
99 . iparts(*),ipartc(*),ipartg(*),ipart(lipart1,*)
102 CHARACTER(LEN=NCHARFIELD) :: KEYSET
106 INTEGER,
DIMENSION(:),
ALLOCATABLE :: RESULT
107 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NODES
108 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: SURF
109 INTEGER NEW_SIZE,NS,ND_SIZE,OPERATOR
110 logical :: empty_condition
114 IF( clause%NB_NODE > 0)
THEN
116 IF( set%NB_NODE > 0 )
THEN
118 ALLOCATE(result(set%NB_NODE + clause%NB_NODE ))
121 * clause%NODE, clause%NB_NODE ,
125 IF (
ALLOCATED(set%NODE))
DEALLOCATE (set%NODE)
126 ALLOCATE(set%NODE(new_size))
128 set%NODE(1:new_size) = result(1:new_size)
135 IF ( clause_operator ==
set_add)
THEN
136 IF (
ALLOCATED(set%NODE))
DEALLOCATE (set%NODE)
137 ALLOCATE(set%NODE(clause%NB_NODE) )
139 set%NB_NODE=clause%NB_NODE
140 set%NODE(1:clause%NB_NODE)=clause%NODE(1:clause%NB_NODE)
146 IF ( clause_operator ==
set_intersect)
THEN ! set intersection with empty clause gives empty set
147 IF (set%NB_NODE > 0)
THEN
148 IF(
ALLOCATED(set%NODE))
DEALLOCATE(set%NODE)
156 IF( clause%NB_NODENS > 0 )
THEN
158 IF( set%NB_NODENS > 0 )
THEN
160 ALLOCATE(result(set%NB_NODENS + clause%NB_NODENS ))
163 * clause%NODENS, clause%NB_NODENS ,
167 IF (
ALLOCATED(set%NODENS))
DEALLOCATE (set%NODENS)
168 ALLOCATE(set%NODENS(new_size))
170 set%NODENS(1:new_size) = result(1:new_size)
171 set%NB_NODENS=new_size
177 IF ( clause_operator ==
set_add)
THEN
178 IF (
ALLOCATED(set%NODENS))
DEALLOCATE (set%NODENS)
179 ALLOCATE(set%NODENS(clause%NB_NODENS) )
181 set%NB_NODENS=clause%NB_NODENS
182 set%NODENS(1:clause%NB_NODENS)=clause%NODENS(1:clause%NB_NODENS)
189 IF (set%NB_NODENS > 0)
THEN
190 IF(
ALLOCATED(set%NODENS))
DEALLOCATE(set%NODENS)
198 IF( clause%NB_PART > 0)
THEN
200 IF( set%NB_PART > 0 )
THEN
202 ALLOCATE(result(set%NB_PART + clause%NB_PART ))
205 * clause%PART, clause%NB_PART ,
209 IF (
ALLOCATED(set%PART))
DEALLOCATE (set%PART)
210 ALLOCATE(set%PART(new_size))
212 set%PART(1:new_size) = result(1:new_size)
218 IF ( clause_operator ==
set_add)
THEN
219 IF (
ALLOCATED(set%PART))
DEALLOCATE (set%PART)
220 ALLOCATE(set%PART(clause%NB_PART) )
222 set%NB_PART=clause%NB_PART
223 set%PART(1:set%NB_PART)=clause%PART(1:set%NB_PART)
230 IF (set%NB_PART > 0)
THEN
231 IF(
ALLOCATED(set%PART))
DEALLOCATE(set%PART)
239 IF( clause%NB_SOLID > 0)
THEN
241 IF( set%NB_SOLID > 0 )
THEN
243 ALLOCATE(result(set%NB_SOLID + clause%NB_SOLID ))
246 * clause%SOLID, clause%NB_SOLID ,
250 IF (
ALLOCATED(set%SOLID))
DEALLOCATE (set%SOLID)
251 ALLOCATE(set%SOLID(new_size))
253 set%SOLID(1:new_size) = result(1:new_size)
254 set%NB_SOLID=new_size
260 IF ( clause_operator ==
set_add)
THEN
261 IF (
ALLOCATED(set%SOLID))
DEALLOCATE (set%SOLID)
262 ALLOCATE(set%SOLID(clause%NB_SOLID) )
264 set%NB_SOLID=clause%NB_SOLID
265 set%SOLID(1:clause%NB_SOLID)=clause%SOLID(1:clause%NB_SOLID)
272 IF (set%NB_SOLID > 0)
THEN
273 IF(
ALLOCATED(set%SOLID))
DEALLOCATE(set%SOLID)
281 IF( clause%NB_SH4N > 0)
THEN
283 IF( set%NB_SH4N > 0 )
THEN
285 ALLOCATE(result(set%NB_SH4N + clause%NB_SH4N ))
288 * clause%SH4N, clause%NB_SH4N ,
292 IF (
ALLOCATED(set%SH4N))
DEALLOCATE (set%SH4N)
293 ALLOCATE(set%SH4N(new_size))
295 set%SH4N(1:new_size) = result(1:new_size)
302 IF ( clause_operator ==
set_add)
THEN
303 IF (
ALLOCATED(set%SH4N))
DEALLOCATE (set%SH4N)
304 ALLOCATE(set%SH4N(clause%NB_SH4N) )
306 set%NB_SH4N=clause%NB_SH4N
307 set%SH4N(1:clause%NB_SH4N)=clause%SH4N(1:clause%NB_SH4N)
314 IF (set%NB_SH4N > 0)
THEN
315 IF(
ALLOCATED(set%SH4N))
DEALLOCATE(set%SH4N)
323 IF( clause%NB_SH3N > 0)
THEN
325 IF( set%NB_SH3N > 0 )
THEN
327 ALLOCATE(result(set%NB_SH3N + clause%NB_SH3N ))
330 * clause%SH3N, clause%NB_SH3N ,
334 IF (
ALLOCATED(set%SH3N))
DEALLOCATE (set%SH3N)
335 ALLOCATE(set%SH3N(new_size))
337 set%SH3N(1:new_size) = result(1:new_size)
344 IF ( clause_operator ==
set_add)
THEN
345 IF (
ALLOCATED(set%SH3N))
DEALLOCATE (set%SH3N)
346 ALLOCATE(set%SH3N(clause%NB_SH3N) )
348 set%NB_SH3N=clause%NB_SH3N
349 set%SH3N(1:clause%NB_SH3N) = clause%SH3N(1:clause%NB_SH3N)
355 IF ( clause_operator
THEN
357 IF(
ALLOCATED(set%SH3N))
DEALLOCATE(set%SH3N
365 IF( clause%NB_QUAD > 0)
THEN
367 IF( set%NB_QUAD > 0 )
THEN
369 ALLOCATE(result(set%NB_QUAD + clause%NB_QUAD ))
372 * clause%QUAD, clause%NB_QUAD ,
376 IF (
ALLOCATED(set%QUAD))
DEALLOCATE (set%QUAD)
377 ALLOCATE(set%QUAD(new_size))
379 set%QUAD(1:new_size) = result(1:new_size)
386 IF ( clause_operator ==
set_add)
THEN
387 IF (
ALLOCATED(set%QUAD))
DEALLOCATE (set%QUAD)
390 set%NB_QUAD=clause%NB_QUAD
391 set%QUAD(1:clause%NB_QUAD)=clause%QUAD(1:clause%NB_QUAD)
398 IF (set%NB_QUAD > 0)
THEN
399 IF(
ALLOCATED(set%QUAD))
DEALLOCATE(set%QUAD)
407 IF( clause%NB_TRIA > 0)
THEN
409 IF( set%NB_TRIA > 0 )
THEN
411 ALLOCATE(result(set%NB_TRIA + clause%NB_TRIA ))
414 * clause%TRIA, clause%NB_TRIA ,
418 IF (
ALLOCATED(set%TRIA))
DEALLOCATE (set%TRIA)
419 ALLOCATE(set%TRIA(new_size))
421 set%TRIA(1:new_size) = result(1:new_size)
428 IF ( clause_operator ==
set_add)
THEN
429 IF (
ALLOCATED(set%TRIA))
DEALLOCATE (set%TRIA)
430 ALLOCATE(set%TRIA(clause%NB_TRIA) )
432 set%NB_TRIA=clause%NB_TRIA
433 set%TRIA(1:clause%NB_TRIA) = clause%TRIA(1:clause%NB_TRIA)
440 IF (set%NB_TRIA > 0)
THEN
441 IF(
ALLOCATED(set%TRIA))
DEALLOCATE(set%TRIA)
449 IF( clause%NB_BEAM > 0)
THEN
451 IF( set%NB_BEAM > 0 )
THEN
453 ALLOCATE(result(set%NB_BEAM + clause%NB_BEAM ))
456 * clause%BEAM, clause%NB_BEAM ,
460 IF (
ALLOCATED(set%BEAM))
DEALLOCATE (set%BEAM)
461 ALLOCATE(set%BEAM(new_size))
463 set%BEAM(1:new_size) = result(1:new_size)
470 IF ( clause_operator ==
set_add)
THEN
471 IF (
ALLOCATED(set%BEAM))
DEALLOCATE (set%BEAM)
472 ALLOCATE(set%BEAM(clause%NB_BEAM) )
474 set%NB_BEAM=clause%NB_BEAM
475 set%BEAM(1:clause%NB_BEAM) = clause%BEAM(1:clause%NB_BEAM)
481 IF (set%NB_BEAM > 0)
THEN
482 IF(
ALLOCATED(set%BEAM))
DEALLOCATE(set%BEAM)
490 IF( clause%NB_TRUSS > 0)
THEN
492 IF( set%NB_TRUSS > 0 )
THEN
494 ALLOCATE(result(set%NB_TRUSS + clause%NB_TRUSS ))
497 * clause%TRUSS, clause%NB_TRUSS ,
501 IF (
ALLOCATED(set%TRUSS))
DEALLOCATE (set%TRUSS)
502 ALLOCATE(set%TRUSS(new_size))
504 set%TRUSS(1:new_size) = result(1:new_size)
505 set%NB_TRUSS=new_size
511 IF ( clause_operator ==
set_add)
THEN
512 IF (
ALLOCATED(set%TRUSS))
DEALLOCATE (set%TRUSS)
513 ALLOCATE(set%TRUSS(clause%NB_TRUSS) )
515 set%NB_TRUSS=clause%NB_TRUSS
516 set%TRUSS(1:clause%NB_TRUSS) = clause%TRUSS(1:clause%NB_TRUSS)
523 IF (set%NB_TRUSS > 0)
THEN
524 IF(
ALLOCATED(set%TRUSS))
DEALLOCATE(set%TRUSS)
532 IF( clause%NB_SPRING > 0)
THEN
534 IF( set%NB_SPRING > 0 )
THEN
536 ALLOCATE(result(set%NB_SPRING + clause%NB_SPRING ))
539 * clause%SPRING, clause%NB_SPRING ,
543 IF (
ALLOCATED(set%SPRING))
DEALLOCATE (set%SPRING)
544 ALLOCATE(set%SPRING(new_size))
546 set%SPRING(1:new_size) = result(1:new_size)
547 set%NB_SPRING=new_size
553 IF ( clause_operator ==
set_add)
THEN
554 IF (
ALLOCATED(set%SPRING))
DEALLOCATE (set%SPRING)
555 ALLOCATE(set%SPRING(clause%NB_SPRING) )
557 set%NB_SPRING=clause%NB_SPRING
558 set%SPRING(1:clause%NB_SPRING)=clause%SPRING(1:clause%NB_SPRING)
564 IF (set%NB_SPRING > 0)
THEN
565 IF(
ALLOCATED(set%SPRING))
DEALLOCATE(set%SPRING)
578 IF ( set%NB_ELLIPSE > 0 )
THEN
580 set%ELLIPSE_IAD_BUFR = clause%ELLIPSE_IAD_BUFR
581 set%ELLIPSE_ID_MADYMO = clause%ELLIPSE_ID_MADYMO
582 set%ELLIPSE_N = clause%ELLIPSE_N
583 set%ELLIPSE_XC = clause%ELLIPSE_XC
584 set%ELLIPSE_YC = clause%ELLIPSE_YC
585 set%ELLIPSE_ZC = clause%ELLIPSE_ZC
586 set%ELLIPSE_A = clause%ELLIPSE_A
587 set%ELLIPSE_B = clause%ELLIPSE_B
588 set%ELLIPSE_C = clause%ELLIPSE_C
589 set%EXT_ALL = clause%EXT_ALL
590 CALL my_alloc(set%ELLIPSE_SKEW,9)
591 set%ELLIPSE_SKEW(1:9) = clause%ELLIPSE_SKEW(1:9)
596 ELSEIF ( set%NB_PLANE > 0 )
THEN
598 set%PLANE_IAD_BUFR = clause%PLANE_IAD_BUFR
599 set%PLANE_XM = clause%PLANE_XM
601 set%PLANE_ZM = clause%PLANE_ZM
602 set%PLANE_XM1 = clause%PLANE_XM1
603 set%PLANE_YM1 = clause%PLANE_YM1
604 set%PLANE_ZM1 = clause%PLANE_ZM1
605 set%EXT_ALL = clause%EXT_ALL
610 empty_condition = (clause%nb_surf_seg==0)
611 IF( clause%NB_SURF_SEG > 0)
THEN
612 empty_condition = (set%nb_surf_seg==0)
613 IF( set%NB_SURF_SEG > 0 )
THEN
620 IF ( clause_operator ==
set_add)
THEN
622 CALL union_surface( set%SURF_NODES(1,1), set%SURF_NODES(1,2),
624 . set%SURF_ELTYP, set%SURF_ELEM, set%NB_SURF_SEG,
625 . clause%SURF_NODES(1,1), clause%SURF_NODES(1,2),
626 . clause%SURF_NODES(1,3), clause%SURF_NODES(1,4),
627 . clause%SURF_ELTYP, clause%SURF_ELEM, clause%NB_SURF_SEG
629 call surface_type( empty_condition,clause_operator,clause,set )
633 CALL delete_surface(set%SURF_NODES(1,1), set%SURF_NODES(1,2),
634 . set%SURF_NODES(1,3), set%SURF_NODES(1,4),
635 . set%SURF_ELTYP, set%SURF_ELEM, set%NB_SURF_SEG,
636 . clause%SURF_NODES(1,1), clause%SURF_NODES(1,2),
637 . clause%SURF_NODES(1,3), clause%SURF_NODES(1,4),
638 . clause%SURF_ELTYP, clause%SURF_ELEM, clause%NB_SURF_SEG,
640 call surface_type( empty_condition,clause_operator,clause,set )
644 CALL intersect_surface( set%SURF_NODES(1,1), set%SURF_NODES(1,2),
645 . set%SURF_NODES(1,3), set%SURF_NODES(1,4),
646 . set%SURF_ELTYP, set%SURF_ELEM, set%NB_SURF_SEG,
647 . clause%SURF_NODES(1,1), clause%SURF_NODES(1,2),
648 . clause%SURF_NODES(1,3), clause%SURF_NODES
649 . clause%SURF_ELTYP, clause%SURF_ELEM, clause%NB_SURF_SEG,
651 call surface_type( empty_condition,clause_operator,clause,set )
653 print*,
'Unknown clause operator'
656 DEALLOCATE(set%SURF_NODES)
657 DEALLOCATE(set%SURF_ELTYP)
658 DEALLOCATE(set%SURF_ELEM)
660 CALL my_alloc(set%SURF_NODES,ns,4)
661 CALL my_alloc (set%SURF_ELTYP,ns)
662 CALL my_alloc (set%SURF_ELEM,ns)
666 CALL get_merged_surface(set%SURF_NODES(1,1),
667 . set%SURF_NODES(1,2),
668 . set%SURF_NODES(1,3),
669 . set%SURF_NODES(1,4),
675 IF ( clause_operator ==
set_add)
THEN
676 IF (
ALLOCATED (set%SURF_NODES) )
DEALLOCATE(set%SURF_NODES)
677 IF (
ALLOCATED (set%SURF_ELTYP) )
DEALLOCATE(set%SURF_ELTYP)
678 IF (
ALLOCATED (set%SURF_ELEM) )
DEALLOCATE(set%SURF_ELEM)
680 new_size = clause%NB_SURF_SEG
681 CALL my_alloc(set%SURF_NODES,new_size,4)
682 CALL my_alloc (set%SURF_ELTYP,new_size)
683 CALL my_alloc (set%SURF_ELEM,new_size)
685 set%NB_SURF_SEG = new_size
686 set%SURF_NODES(1:new_size,1:4) = clause%SURF_NODES(1:new_size,1:4)
687 set%SURF_ELTYP(1:new_size) = clause%SURF_ELTYP(1:new_size)
688 set%SURF_ELEM(1:new_size) = clause%SURF_ELEM(1:new_size)
689 call surface_type( empty_condition,clause_operator,clause,set )
694 IF (set%NB_SURF_SEG > 0)
THEN
695 IF(
ALLOCATED(set%SURF_NODES))
DEALLOCATE(set%SURF_NODES)
696 IF(
ALLOCATED(set%SURF_ELTYP))
DEALLOCATE(set%SURF_ELTYP)
697 IF(
ALLOCATED(set%SURF_ELEM))
DEALLOCATE(set%SURF_ELEM)
699 call surface_type( empty_condition,clause_operator,clause,set )
707 IF( clause%NB_LINE_SEG > 0)
THEN
709 IF( set%NB_LINE_SEG > 0 )
THEN
716 IF ( clause_operator ==
set_add)
THEN
718 CALL union_line( set%LINE_NODES(1,1), set%LINE_NODES(1,2),
719 . set%LINE_ELTYP, set%LINE_ELEM, set%NB_LINE_SEG,
720 . clause%LINE_NODES(1,1), clause%LINE_NODES(1,2),
721 . clause%LINE_ELTYP, clause%LINE_ELEM, clause%NB_LINE_SEG,
726 CALL delete_line ( set%LINE_NODES(1,1), set%LINE_NODES(1,2),
727 . set%LINE_ELTYP, set%LINE_ELEM, set%NB_LINE_SEG,
728 . clause%LINE_NODES(1,1), clause%LINE_NODES(1,2),
729 . clause%LINE_ELTYP, clause%LINE_ELEM, clause%NB_LINE_SEG,
734 CALL intersect_line ( set%LINE_NODES(1,1), set%LINE_NODES(1,2),
735 . set%LINE_ELTYP, set%LINE_ELEM, set%NB_LINE_SEG,
736 . clause%LINE_NODES(1,1), clause%LINE_NODES(1,2),
737 . clause%LINE_ELTYP, clause%LINE_ELEM, clause%NB_LINE_SEG,
740 print*,
'Unknown clause operator'
743 DEALLOCATE(set%LINE_NODES)
744 DEALLOCATE(set%LINE_ELTYP)
745 DEALLOCATE(set%LINE_ELEM)
747 CALL my_alloc(set%LINE_NODES,new_size,4)
748 CALL my_alloc (set%LINE_ELTYP,new_size)
749 CALL my_alloc (set%LINE_ELEM,new_size)
751 set%NB_LINE_SEG = new_size
753 CALL get_merged_lines (set%LINE_NODES(1,1),
754 . set%LINE_NODES(1,2),
760 IF ( clause_operator ==
set_add)
THEN
761 IF (
ALLOCATED (set%LINE_NODES) )
DEALLOCATE(set%LINE_NODES)
762 IF (
ALLOCATED (set%LINE_ELTYP) )
DEALLOCATE(set%LINE_ELTYP)
763 IF (
ALLOCATED (set%LINE_ELEM) )
DEALLOCATE(set%LINE_ELEM)
765 new_size = clause%NB_LINE_SEG
766 CALL my_alloc(set%LINE_NODES,new_size
767 CALL my_alloc (set%LINE_ELTYP,new_size)
768 CALL my_alloc (set%LINE_ELEM,new_size)
770 set%NB_LINE_SEG = new_size
771 set%LINE_NODES(1:new_size,1:2) = clause%LINE_NODES(1:new_size,1:2)
772 set%LINE_ELTYP(1:new_size) = clause%LINE_ELTYP(1:new_size)
773 set%LINE_ELEM(1:new_size) = clause%LINE_ELEM(1:new_size)
779 IF (set%NB_LINE_SEG > 0)
THEN
780 IF(
ALLOCATED(set%LINE_NODES))
DEALLOCATE(set%LINE_NODES)
781 IF(
ALLOCATED(set%LINE_ELTYP))
DEALLOCATE(set%LINE_ELTYP)
782 IF(
ALLOCATED(set%LINE_ELEM))
DEALLOCATE(set%LINE_ELEM)
830 . ixs ,ixs10 ,sh4tree ,sh3tree ,ixc ,
831 . ixtg ,knod2els ,nod2els ,knod2elc ,nod2elc ,
832 . knod2eltg ,nod2eltg ,ipartc ,ipartg ,iparts ,
833 . ipart ,set ,opt_a ,opt_o ,ixq ,
834 . knod2elq ,nod2elq ,x ,keyset ,delbuf ,
838 IF(.NOT.
ALLOCATED(set%SURF_NODES))
ALLOCATE(set%SURF_NODES(1,4))
839 IF(.NOT.
ALLOCATED(set%SURF_ELTYP))
ALLOCATE(set%SURF_ELTYP(1))
840 IF(.NOT.
ALLOCATED(set%SURF_ELEM))
ALLOCATE(set%SURF_ELEM(1))
841 IF(.NOT.
ALLOCATED(delbuf%SURF))
ALLOCATE(delbuf%SURF(1,6))
843 CALL union_surface(set%SURF_NODES(1,1), set%SURF_NODES(1,2),
844 . set%SURF_NODES(1,3), set%SURF_NODES(1,4),
845 . set%SURF_ELTYP, set%SURF_ELEM, set%NB_SURF_SEG,
846 . delbuf%SURF(1,1), delbuf%SURF(1,2),
847 . delbuf%SURF(1,3), delbuf%SURF(1,4),
848 . delbuf%SURF(1,5), delbuf%SURF(1,6), delbuf%SZ_SURF,
851 IF(
ALLOCATED(set%SURF_NODES))
DEALLOCATE(set%SURF_NODES)
852 IF(
ALLOCATED(set%SURF_ELTYP))
DEALLOCATE(set%SURF_ELTYP)
853 IF(
ALLOCATED(set%SURF_ELEM))
DEALLOCATE(set%SURF_ELEM)
854 IF(
ALLOCATED(delbuf%SURF))
DEALLOCATE(delbuf%SURF)
856 CALL my_alloc(set%SURF_NODES,ns,4)
857 CALL my_alloc(set%SURF_ELTYP,ns)
858 CALL my_alloc(set%SURF_ELEM,ns)
862 CALL get_merged_surface(set%SURF_NODES(1,1),
863 . set%SURF_NODES(1,2),
864 . set%SURF_NODES(1,3),
865 . set%SURF_NODES(1,4),
878 IF(.NOT.
ALLOCATED(set%LINE_NODES))
ALLOCATE(set%LINE_NODES(1,2))
879 IF(.NOT.
ALLOCATED(set%LINE_ELTYP))
ALLOCATE(set%LINE_ELTYP(1))
880 IF(.NOT.
ALLOCATED(set%LINE_ELEM))
ALLOCATE(set%LINE_ELEM(1))
881 IF(.NOT.
ALLOCATED(delbuf%LINE))
ALLOCATE(delbuf%LINE(1,4))
883 CALL union_line(set%LINE_NODES(1,1), set%LINE_NODES(1,2),
884 . set%LINE_ELTYP, set%LINE_ELEM, set%NB_LINE_SEG,
885 . delbuf%LINE(1,1), delbuf%LINE(1,2),
886 . delbuf%LINE(1,3), delbuf%LINE(1,4), delbuf%SZ_LINE,
889 IF(
ALLOCATED(set%LINE_NODES))
DEALLOCATE(set%LINE_NODES)
890 IF(
ALLOCATED(set%LINE_ELTYP))
DEALLOCATE(set%LINE_ELTYP)
891 IF(
ALLOCATED(set%LINE_ELEM))
DEALLOCATE(set%LINE_ELEM)
892 IF(
ALLOCATED(delbuf%LINE))
DEALLOCATE(delbuf%LINE)
894 CALL my_alloc(set%LINE_NODES,new_size,4)
895 CALL my_alloc (set%LINE_ELTYP,new_size)
896 CALL my_alloc (set%LINE_ELEM,new_size)
898 set%NB_LINE_SEG = new_size
900 CALL get_merged_lines (set%LINE_NODES(1,1),
901 . set%LINE_NODES(1,2),
912 IF(.NOT.
ALLOCATED(set%LINE_NODES))
ALLOCATE(set%LINE_NODES(1,2))
913 IF(.NOT.
ALLOCATED(set%LINE_ELTYP))
ALLOCATE(set%LINE_ELTYP(1))
914 IF(.NOT.
ALLOCATED(set%LINE_ELEM))
ALLOCATE(set%LINE_ELEM(1))
915 IF(.NOT.
ALLOCATED(delbuf%LINE))
ALLOCATE(delbuf%LINE(1,4))
918 CALL union_line(set%LINE_NODES(1,1), set%LINE_NODES(1,2),
919 . set%LINE_ELTYP, set%LINE_ELEM, set%NB_LINE_SEG,
920 . delbuf%LINE(1,1), delbuf%LINE(1,2),
921 . delbuf%LINE(1,3), delbuf%LINE(1,4), delbuf%SZ_LINE,
924 IF(
ALLOCATED(set%LINE_NODES))
DEALLOCATE(set%LINE_NODES)
925 IF(
ALLOCATED(set%LINE_ELTYP))
DEALLOCATE(set%LINE_ELTYP)
926 IF(
ALLOCATED(set%LINE_ELEM))
DEALLOCATE(set%LINE_ELEM)
927 IF(
ALLOCATED(delbuf%LINE))
DEALLOCATE(delbuf%LINE)
929 CALL my_alloc(set%LINE_NODES,new_size,4)
930 CALL my_alloc (set%LINE_ELTYP,new_size)
931 CALL my_alloc (set%LINE_ELEM,new_size)
933 set%NB_LINE_SEG = new_size
935 CALL get_merged_lines (set%LINE_NODES(1,1),
936 . set%LINE_NODES(1,2),