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