37 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
38 . IXC ,IXTG ,IXT ,IXP ,IXR ,
39 . IXX ,KXX ,KXSP ,CLAUSE ,GEO,
40 . ARRAY ,SZ ,GO_IN_ARRAY )
46 USE tag_node_from_part_sphcel_mod
50#include "implicit_f.inc"
60 INTEGER IXS(NIXS,*),IXS10(6,*),IXS16(8,*),IXS20(12,*),
61 . IXQ(NIXQ,*),IXC(NIXC,*),IXTG(NIXTG,*),IXT(NIXT,*),
62 . IXP(NIXP,*),IXR(NIXR,*),IXX(*),KXX(*),KXSP(NISP,*)
73 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: TAGNOD,CLAUSE_NODE
75 INTEGER,
DIMENSION(:),
ALLOCATABLE:: IDX,SORT
78 ALLOCATE(tagnod(numnod))
80 ALLOCATE(clause_node(numnod))
85 IF ( clause%NB_SOLID > 0 )
87 . ixs ,ixs10 ,ixs20 ,ixs16 ,clause%NB_SOLID ,
88 . clause%SOLID ,tagnod ,clause_node,ind )
90 IF ( clause%NB_QUAD > 0 )
92 . ixq ,nixq ,2 ,5 ,clause%NB_QUAD,
93 . clause%QUAD ,tagnod,clause_node,ind )
95 IF ( clause%NB_SH4N > 0 )
97 . ixc ,nixc ,2 ,5 ,clause%NB_SH4N,
98 . clause%SH4N ,tagnod,clause_node,ind )
100 IF ( clause%NB_SH3N > 0 .AND. clause%NB_TRIA == 0 )
102 . ixtg ,nixtg ,2 ,4 ,clause%NB_SH3N,
103 . clause%SH3N ,tagnod,clause_node,ind )
105 IF ( clause%NB_TRIA > 0 )
107 . ixtg ,nixtg ,2 ,4 ,clause%NB_TRIA,
108 . clause%TRIA ,tagnod,clause_node,ind
110 IF ( clause%NB_TRUSS > 0 )
112 . ixt ,nixt ,2 ,3 ,clause%NB_TRUSS,
113 . clause%TRUSS,tagnod,clause_node,ind )
115 IF ( clause%NB_BEAM > 0 )
117 . ixp ,nixp ,2 ,3 ,clause%NB_BEAM,
118 . clause%BEAM ,tagnod,clause_node,ind )
120 IF ( clause%NB_SPRING > 0 )
122 . ixr ,geo ,clause%NB_SPRING ,clause%SPRING ,tagnod,clause_node,ind)
129 IF ( clause%NB_SPHCEL > 0 )
130 .
CALL tag_node_from_part_sphcel(
131 . clause%NB_SPHCEL ,clause%SPHCEL ,tagnod,clause_node,ind,numnod)
139 sort(1:ind) = clause_node(1:ind)
143 clause_node(i) = sort(idx(i))
150 IF (tagnod(i) == 1)
THEN
159! example : clause with delete clause. nodes must be recreated & merged...
160! ----------------------------------------------------------------------------
161 IF (go_in_array .EQV. .true.)
THEN
163 array(1:ind) = clause_node(1:ind)
168 IF(
ALLOCATED( clause%NODE ))
DEALLOCATE( clause%NODE )
169 ALLOCATE( clause%NODE(ind) )
170 clause%NODE(1:ind) = clause_node(1:ind)
174 DEALLOCATE(clause_node)
subroutine create_node_from_element(ixs, ixs10, ixs20, ixs16, ixq, ixc, ixtg, ixt, ixp, ixr, ixx, kxx, kxsp, clause, geo, array, sz, go_in_array)