37 use element_mod , only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
38
39
40
41#include "implicit_f.inc"
42
43
44
45#include "param_c.inc"
46#include "scr23_c.inc"
47#include "com04_c.inc"
48
49
50
51 INTEGER IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*),IXTG(NIXTG,*),
52 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),
53 . IXS10(6,*),IXS20(12,*),IXS16(8,*),IXTG1(4,*),
54 . IGEO(NPROPGI,*),KNOD2ELS(*),KNOD2ELC(*),KNOD2ELTG(*),
55 . NOD2ELS(*),NOD2ELC(*),NOD2ELTG(*),ADDCNEL(*),CNEL(*),
56 . KXX(NIXX,*),IXX(*),KXIG3D(NIXIG3D,*),IXIG3D(*),
57 . KNOD2ELIG3D(*),NOD2ELIG3D(*),KNOD2ELQ(*),NOD2ELQ(*)
58
60 . x(3,*),lelx(*)
61
62
63
64 INTEGER I, J, K, N, PX, PY, PZ
65
66
67
68
69 DO k=2,9
70 DO i=1,numels
71 n = ixs(k,i)
72 IF(n/=0) knod2els(n) = knod2els(n) + 1
73 END DO
74 END DO
75
76 DO k=1,6
77 DO i=1,numels10
78 n = ixs10(k,i)
79 IF(n/=0) knod2els(n) = knod2els(n) + 1
80 END DO
81 END DO
82
83 DO k=1,12
84 DO i=1,numels20
85 n = ixs20(k,i)
86 IF(n/=0) knod2els(n) = knod2els(n) + 1
87 END DO
88 END DO
89
90 DO k=1,8
91 DO i=1,numels16
92 n = ixs16(k,i)
93 IF(n/=0) knod2els(n) = knod2els(n) + 1
94 END DO
95 END DO
96
97 DO i=1,numnod
98 knod2els(i+1) = knod2els(i+1) + knod2els(i)
99 END DO
100
101 DO n=numnod,1,-1
102 knod2els(n+1)=knod2els(n)
103 END DO
104 knod2els(1)=0
105
106 DO k=2,5
107 DO i=1,numelc
108 n = ixc(k,i)
109 knod2elc(n) = knod2elc(n) + 1
110 END DO
111 END DO
112
113 DO i=1,numnod
114 knod2elc(i+1) = knod2elc(i+1) + knod2elc(i)
115 END DO
116
117 DO n=numnod,1,-1
118 knod2elc(n+1)=knod2elc(n)
119 END DO
120 knod2elc(1)=0
121
122 DO k=2,4
123 DO i=1,numeltg
124 n = ixtg(k,i)
125 knod2eltg(n) = knod2eltg(n) + 1
126 END DO
127 END DO
128
129 DO k=1,3
130 DO i=1,numeltg6
131 n = ixtg1(k,i)
132 IF (n/=0) knod2eltg(n) = knod2eltg(n) + 1
133 END DO
134 END DO
135
136 DO i=1,numnod
137 knod2eltg(i+1) = knod2eltg(i+1) + knod2eltg(i)
138 END DO
139
140 DO n=numnod,1,-1
141 knod2eltg(n+1)=knod2eltg(n)
142 END DO
143 knod2eltg(1)=0
144
145 DO i=1,numelig3d
146 px = igeo(41,kxig3d(2,i))
147 py = igeo(42,kxig3d(2,i))
148 pz = igeo(43,kxig3d(2,i))
149 DO k=1,px*py*pz
150 n = ixig3d(kxig3d(4,i)+k-1)
151 knod2elig3d(n) = knod2elig3d(n) + 1
152 END DO
153 END DO
154
155 DO i=1,numnod
156 knod2elig3d(i+1) = knod2elig3d(i+1) + knod2elig3d(i)
157 END DO
158
159 DO n=numnod,1,-1
160 knod2elig3d(n+1)=knod2elig3d(n)
161 END DO
162 knod2elig3d(1)=0
163
164
165
166 DO k=2,5
167 DO i=1,numelq
168 n = ixq(k,i)
169 knod2elq(n) = knod2elq(n) + 1
170 END DO
171 END DO
172
173 DO i=1,numnod
174 knod2elq(i+1) = knod2elq(i+1) + knod2elq(i)
175 END DO
176
177 DO n=numnod,1,-1
178 knod2elq(n+1)=knod2elq(n)
179 END DO
180 knod2elq(1)=0
181
182 DO k=2,3
183 DO i=1,numelt
184 n = ixt(k,i)
185 addcnel(n) = addcnel(n) + 1
186 END DO
187 END DO
188
189 DO k=2,3
190 DO i=1,numelp
191 n = ixp(k,i)
192 addcnel(n) = addcnel(n) + 1
193 END DO
194 END DO
195
196 DO k=2,3
197 DO i=1,numelr
198 n = ixr(k,i)
199 addcnel(n) = addcnel(n) + 1
200 END DO
201 END DO
202
203 DO i=1,numelx
204 DO k=1,kxx(3,i)-1
205 n = ixx(kxx(4,i)+k)
206 addcnel(n) = addcnel(n) + 1
207 END DO
208 END DO
209
210 DO i=1,numnod
211 addcnel(i+1) = addcnel(i+1) + addcnel(i)
212 END DO
213
214 DO n=numnod,1,-1
215 addcnel(n+1)=addcnel(n)
216 END DO
217 addcnel(1)=0
218
219
220
221
222
223
224
225
226
227
228 DO k=2,9
229 DO i=1,numels
230 n = ixs(k,i)
231 knod2els(n) = knod2els(n) + 1
232 IF(n/=0) nod2els(knod2els(n)) = i
233 END DO
234 END DO
235
236 DO k=1,6
237 DO i=1,numels10
238 n = ixs10(k,i)
239 IF (n/=0) THEN
240 knod2els(n) = knod2els(n) + 1
241 nod2els(knod2els(n)) = numels8+i
242 END IF
243 END DO
244 END DO
245
246 DO k=1,12
247 DO i=1,numels20
248 n = ixs20(k,i)
249 IF (n/=0) THEN
250 knod2els(n) = knod2els(n) + 1
251 nod2els(knod2els(n)) = numels10+numels8+i
252 END IF
253 END DO
254 END DO
255
256 DO k=1,8
257 DO i=1,numels16
258 n = ixs16(k,i)
259 IF (n/=0) THEN
260 knod2els(n) = knod2els(n) + 1
261 nod2els(knod2els(n)) = numels20+numels10+numels8+i
262 END IF
263 END DO
264 END DO
265
266 DO n=numnod,1,-1
267 knod2els(n+1)=knod2els(n)
268 END DO
269 knod2els(1)=0
270
271
272
273 DO k=2,5
274 DO i=1,numelc
275 n = ixc(k,i)
276 knod2elc(n) = knod2elc(n) + 1
277 nod2elc(knod2elc(n)) = i
278 END DO
279 END DO
280
281 DO n=numnod,1,-1
282 knod2elc(n+1)=knod2elc(n)
283 END DO
284 knod2elc(1)=0
285
286
287
288 DO k=2,4
289 DO i=1,numeltg
290 n = ixtg(k,i)
291 knod2eltg(n) = knod2eltg(n) + 1
292 nod2eltg(knod2eltg(n)) = i
293 END DO
294 END DO
295
296 DO k=1,3
297 DO i=1,numeltg6
298 n = ixtg1(k,i)
299 IF (n/=0) THEN
300 knod2eltg(n) = knod2eltg(n) + 1
301 nod2eltg(knod2eltg(n)) = numeltg-numeltg6+i
302 END IF
303 END DO
304 END DO
305
306 DO n=numnod,1,-1
307 knod2eltg(n+1)=knod2eltg(n)
308 END DO
309 knod2eltg(1)=0
310
311 DO k=2,3
312 DO i=1,numelt
313 n = ixt(k,i)
314 addcnel(n) = addcnel(n) + 1
315 cnel(addcnel(n)) = i
316 END DO
317 END DO
318
319 DO k=2,3
320 DO i=1,numelp
321 n = ixp(k,i)
322 addcnel(n) = addcnel(n) + 1
323 cnel(addcnel(n)) = numelt+i
324 END DO
325 END DO
326
327 DO k=2,3
328 DO i=1,numelr
329 n = ixr(k,i)
330 addcnel(n) = addcnel(n) + 1
331 cnel(addcnel(n)) = numelt+numelp+i
332 END DO
333 END DO
334
335 DO i=1,numelx
336 DO k=1,kxx(3,i)-1
337 n = ixx(kxx(4,i)+k)
338 addcnel(n) = addcnel(n) + 1
339 cnel(addcnel(n)) = numelt+numelp+numelr+i
340 END DO
341 END DO
342
343 DO n=numnod,1,-1
344 addcnel(n+1)=addcnel(n)
345 END DO
346 addcnel(1)=0
347
348
349 IF(numelx /= 0)THEN
350 lelx(1:numelx) = zero
351 DO i=1,numelx
352 DO j=kxx(4,i)+1,kxx(3,i)+kxx(4,i)-1
353 lelx(i) = lelx(i) +
354 . sqrt((x(1,ixx(j))-x(1,ixx(j-1)))**2
355 . +(x(2,ixx(j))-x(2,ixx(j-1)))**2
356 . +(x(3,ixx(j))-x(3,ixx(j-1)))**2)
357 ENDDO
358 ENDDO
359 ENDIF
360
361 DO i=1,numelig3d
362 px = igeo(41,kxig3d(2,i))
363 py = igeo(42,kxig3d(2,i))
364 pz = igeo(43,kxig3d(2,i))
365 DO k=1,px*py*pz
366 n = ixig3d(kxig3d(4,i)+k-1)
367 knod2elig3d(n) = knod2elig3d(n) + 1
368 nod2elig3d(knod2elig3d(n)) = i
369 END DO
370 END DO
371
372 DO n=numnod,1,-1
373 knod2elig3d(n+1)=knod2elig3d(n)
374 END DO
375 knod2elig3d(1)=0
376
377
378
379
380 DO k=2,5
381 DO i=1,numelq
382 n = ixq(k,i)
383 knod2elq(n) = knod2elq(n) + 1
384 nod2elq(knod2elq(n)) = i
385 END DO
386 END DO
387
388 DO n=numnod,1,-1
389 knod2elq(n+1)=knod2elq(n)
390 END DO
391 knod2elq(1)=0
392
393 RETURN