34
35
36
37
38
40
41
42
43#include "implicit_f.inc"
44
45
46
47#include "param_c.inc"
48#include "com04_c.inc"
49
50
51
52 INTEGER IXS(NIXS,*),IXS10(6,*),IXS16(8,*),IXS20(12,*),IXQ(NIXQ,*),
53 . IXC(NIXC,*),IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),IXTG(,*),
54 . ISKN(LISKN,*),IMERGE(*),NMERGE_TOT
55
56 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
57 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
58 TYPE (SURF_) , DIMENSION(NSLIN) :: IGRSLIN
59
60
61
62 INTEGER ,J,K,L,IAD,IPT,ITYP,NN,TAGNO(NUMNOD),NM
63
64
65
66
67C
68
69
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
77
78 DO i = 1, numels10
79 DO j=1,6
80 IF(ixs10(j,i)/=0)THEN
81 DO k = 1
82 IF(ixs10(j,i) == imerge(k)) ixs10(j,i) = imerge(nmerge_tot+k)
83 ENDDO
84 ENDIF
85 ENDDO
86 ENDDO
87
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
93 ENDDO
94 ENDIF
95 ENDDO
96 ENDDO
97
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
107
108
109
110
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
118
119
120
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
128
129
130
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
138
139
140
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
148
149
150
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
160
161
162
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
170
171
172
173
174
175
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
187
188
189
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
201
202
203
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
209
210 DO j=1,nn
211 tagno(igrnod(i)%ENTITY(j)) = 1
212 ENDDO
213
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
219
220 igrnod(i)%ENTITY(j) = imerge(nmerge_tot+k)
221 tagno(imerge(nmerge_tot+k)) = 1
222 ELSE
223
224 nm = nm + 1
225 tagno(igrnod(i)%ENTITY(j)) = -1
226 ENDIF
227 ENDIF
228 ENDDO
229 ENDDO
230
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
241
242 ENDIF
243 ENDDO
244
245
246
247
248
249
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
257
258 RETURN