OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
reconnect.F File Reference
#include "implicit_f.inc"
#include "param_c.inc"
#include "com04_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine reconnect (ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, ixtg, igrnod, igrsurf, igrslin, iskn, imerge, nmerge_tot)

Function/Subroutine Documentation

◆ reconnect()

subroutine reconnect ( integer, dimension(nixs,*) ixs,
integer, dimension(6,*) ixs10,
integer, dimension(12,*) ixs20,
integer, dimension(8,*) ixs16,
integer, dimension(nixq,*) ixq,
integer, dimension(nixc,*) ixc,
integer, dimension(nixt,*) ixt,
integer, dimension(nixp,*) ixp,
integer, dimension(nixr,*) ixr,
integer, dimension(nixtg,*) ixtg,
type (group_), dimension(ngrnod) igrnod,
type (surf_), dimension(nsurf) igrsurf,
type (surf_), dimension(nslin) igrslin,
integer, dimension(liskn,*) iskn,
integer, dimension(*) imerge,
integer nmerge_tot )

Definition at line 29 of file reconnect.F.

34C--------------------------------------------------------
35C RENITIALISE ELEMENT CONNECTIVITIES AFTER NODE MERGE
36C-----------------------------------------------
37C M o d u l e s
38C-----------------------------------------------
39 USE groupdef_mod
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44C-----------------------------------------------
45C C o m m o n B l o c k s
46C-----------------------------------------------
47#include "param_c.inc"
48#include "com04_c.inc"
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER IXS(NIXS,*),IXS10(6,*),IXS16(8,*),IXS20(12,*),IXQ(NIXQ,*),
53 . IXC(NIXC,*),IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),IXTG(NIXTG,*),
54 . ISKN(LISKN,*),IMERGE(*),NMERGE_TOT
55C-----------------------------------------------
56 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
57 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
58 TYPE (SURF_) , DIMENSION(NSLIN) :: IGRSLIN
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER I,J,K,L,IAD,IPT,ITYP,NN,TAGNO(NUMNOD),NM
63C=======================================================================
64C-----------------------------------
65C ELEMENTS
66C-----------------------------------
67C
68C--- Solids
69C
70 DO i = 1, numels
71 DO j=2,9
72 DO k = 1,nmerged
73 IF (ixs(j,i) == imerge(k)) ixs(j,i) = imerge(nmerge_tot+k)
74 ENDDO
75 ENDDO
76 ENDDO
77C
78 DO i = 1, numels10
79 DO j=1,6
80 IF(ixs10(j,i)/=0)THEN
81 DO k = 1,nmerged
82 IF(ixs10(j,i) == imerge(k)) ixs10(j,i) = imerge(nmerge_tot+k)
83 ENDDO
84 ENDIF
85 ENDDO
86 ENDDO
87C
88 DO i = 1, numels20
89 DO j=1,12
90 IF(ixs20(j,i)/=0)THEN
91 DO k = 1,nmerged
92 IF(ixs20(j,i) == imerge(k)) ixs20(j,i) = imerge(nmerge_tot+k)
93 ENDDO
94 ENDIF
95 ENDDO
96 ENDDO
97C
98 DO i = 1, numels16
99 DO j=1,8
100 IF(ixs16(j,i)/=0)THEN
101 DO k = 1,nmerged
102 IF(ixs16(j,i) == imerge(k)) ixs16(j,i) = imerge(nmerge_tot+k)
103 ENDDO
104 ENDIF
105 ENDDO
106 ENDDO
107C
108C--- Quads
109C
110C
111 DO i = 1, numelq
112 DO j=2,5
113 DO k = 1,nmerged
114 IF (ixq(j,i) == imerge(k)) ixq(j,i) = imerge(nmerge_tot+k)
115 ENDDO
116 ENDDO
117 ENDDO
118C
119C--- Shells
120C
121 DO i = 1, numelc
122 DO j=2,5
123 DO k = 1,nmerged
124 IF (ixc(j,i) == imerge(k)) ixc(j,i) = imerge(nmerge_tot+k)
125 ENDDO
126 ENDDO
127 ENDDO
128C
129C--- Truss
130C
131 DO i = 1, numelt
132 DO j=2,3
133 DO k = 1,nmerged
134 IF (ixt(j,i) == imerge(k)) ixt(j,i) = imerge(nmerge_tot+k)
135 ENDDO
136 ENDDO
137 ENDDO
138C
139C--- Beams
140C
141 DO i = 1, numelp
142 DO j=2,4
143 DO k = 1,nmerged
144 IF (ixp(j,i) == imerge(k)) ixp(j,i) = imerge(nmerge_tot+k)
145 ENDDO
146 ENDDO
147 ENDDO
148C
149C--- Springs
150C
151 DO i = 1, numelr
152 DO j=2,4
153 IF (ixr(j,i) /= 0) THEN
154 DO k = 1,nmerged
155 IF (ixr(j,i) == imerge(k)) ixr(j,i) = imerge(nmerge_tot+k)
156 ENDDO
157 END IF
158 ENDDO
159 ENDDO
160C
161C--- Triangle Shells
162C
163 DO i = 1, numeltg
164 DO j=2,4
165 DO k = 1,nmerged
166 IF (ixtg(j,i) == imerge(k)) ixtg(j,i) = imerge(nmerge_tot+k)
167 ENDDO
168 ENDDO
169 ENDDO
170C-----------------------------------
171C GROUPS
172C-----------------------------------
173C
174C--- Surfaces
175C
176 DO i=1,nsurf
177 nn = igrsurf(i)%NSEG
178 DO j=1,nn
179 DO l=1,4
180 DO k = 1,nmerged
181 IF (igrsurf(i)%NODES(j,l) == imerge(k))
182 . igrsurf(i)%NODES(j,l) = imerge(nmerge_tot+k)
183 ENDDO
184 ENDDO
185 ENDDO
186 ENDDO
187C
188C--- Lines
189C
190 DO i=1,nslin
191 nn = igrslin(i)%NSEG
192 DO j=1,nn
193 DO l=1,2
194 DO k = 1,nmerged
195 IF (igrslin(i)%NODES(j,l) == imerge(k))
196 . igrslin(i)%NODES(j,l) = imerge(nmerge_tot+k)
197 ENDDO
198 ENDDO
199 ENDDO
200 ENDDO
201C
202C--- Node groups
203C
204 DO i=1,ngrnod
205 ityp = igrnod(i)%GRTYPE
206 tagno(1:numnod)=0
207 IF (ityp == 0) THEN
208 nn = igrnod(i)%NENTITY
209C--------- Pass 1
210 DO j=1,nn
211 tagno(igrnod(i)%ENTITY(j)) = 1
212 ENDDO
213C--------- Pass 2
214 nm = 0
215 DO j=1,nn
216 DO k = 1,nmerged
217 IF (igrnod(i)%ENTITY(j) == imerge(k)) THEN
218 IF (tagno(imerge(nmerge_tot+k)) == 0) THEN
219C-- node is replaced
220 igrnod(i)%ENTITY(j) = imerge(nmerge_tot+k)
221 tagno(imerge(nmerge_tot+k)) = 1
222 ELSE
223C-- node is removed
224 nm = nm + 1
225 tagno(igrnod(i)%ENTITY(j)) = -1
226 ENDIF
227 ENDIF
228 ENDDO
229 ENDDO
230C--------- Pass 3
231 IF (nm > 0) THEN
232 l = 0
233 DO j=1,nn
234 IF (tagno(igrnod(i)%ENTITY(j)) /= -1) THEN
235 l = l + 1
236 igrnod(i)%ENTITY(l) = igrnod(i)%ENTITY(j)
237 ENDIF
238 ENDDO
239 igrnod(i)%NENTITY = igrnod(i)%NENTITY - nm
240 ENDIF
241C--
242 ENDIF
243 ENDDO
244C-----------------------------------
245C KINEMATIC CONDITIONS
246C-----------------------------------
247C
248C--- Skews
249C
250 DO i=2,numskw
251 DO j=1,3
252 DO k = 1,nmerged
253 IF (iskn(j,i) == imerge(k)) iskn(j,i) = imerge(nmerge_tot+k)
254 ENDDO
255 ENDDO
256 ENDDO
257C-----------------------------------
258 RETURN