Setup for DG faces.
Stores data on arrays faces and area_nodes.
115
116
117
118
119
120
121 nel_dg_loc = 0
122 ned = cs_loc(0) - 1
123
124 do im = 1,nm
125
126 nn = sd(im) +1
127
128 do ie = 1,ned
129 if (cs_loc(cs_loc(ie -1) + 0) .eq. tag_mat(im)) then
130
131
132 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(1 -
133 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(1
134 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(1
135 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(1
136
137
138 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4countthen
139 nel_dg_loc = nel_dg_loc +1
140
142 zs(ne1), zs(ne2), zs(ne3),
143
144
145
146 faces(1,nel_dg_loc) = tag_mat(im)
147 faces(2,nel_dg_loc) = local_el_num(ie)
148 faces(3,nel_dg_loc) = 1
149
150 area_nodes(1,nel_dg_loc) = surf
151 area_nodes(2,nel_dg_loc) = alfa11(ie)
152 area_nodes(3,nel_dg_loc) = alfa12(ie)
153 area_nodes(4,nel_dg_loc) = alfa13(ie)
154
155 area_nodes(5,nel_dg_loc) = alfa21(ie)
156 area_nodes(6,nel_dg_loc) = alfa22(ie)
157 area_nodes(7,nel_dg_loc) = alfa23(ie)
158
159 area_nodes(8,nel_dg_loc) = alfa31(ie)
160 area_nodes(9,nel_dg_loc) = alfa32(ie)
161 area_nodes(10,nel_dg_loc) = alfa33(ie)
162
163 area_nodes(11,nel_dg_loc) = beta11(ie)
164 area_nodes(12,nel_dg_loc) = beta12(ie)
165 area_nodes(13,nel_dg_loc) = beta13(ie)
166
167 area_nodes(14,nel_dg_loc) = beta21(ie)
168 area_nodes(15,nel_dg_loc) = beta22(ie)
169 area_nodes(16,nel_dg_loc) = beta23(ie)
170
171 area_nodes(17,nel_dg_loc) = beta31(ie)
172 area_nodes(18,nel_dg_loc) = beta32(ie)
173 area_nodes(19,nel_dg_loc) = beta33(ie)
174
175 area_nodes(20,nel_dg_loc) = gamma1(ie)
176 area_nodes(21,nel_dg_loc) = gamma2(ie)
177 area_nodes(22,nel_dg_loc) = gamma3(ie)
178
179 area_nodes(23,nel_dg_loc) = delta1(ie)
180 area_nodes(24,nel_dg_loc) = delta2(ie)
181 area_nodes(25,nel_dg_loc) = delta3(ie)
182
183 endif
184
185
186 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(1 -
187 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(nn
188 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(nn
189 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(1
190
191
192 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4countthen
193 nel_dg_loc = nel_dg_loc +1
194
196 zs(ne1), zs(ne2), zs(ne3),
197
198
199
200 faces(1,nel_dg_loc) = tag_mat(im)
201 faces(2,nel_dg_loc) = local_el_num(ie)
202 faces(3,nel_dg_loc) = 2
203
204 area_nodes(1,nel_dg_loc) = surf
205 area_nodes(2,nel_dg_loc) = alfa11(ie)
206 area_nodes(3,nel_dg_loc) = alfa12(ie)
207 area_nodes(4,nel_dg_loc) = alfa13(ie)
208
209 area_nodes(5,nel_dg_loc) = alfa21(ie)
210 area_nodes(6,nel_dg_loc) = alfa22(ie)
211 area_nodes(7,nel_dg_loc) = alfa23(ie)
212
213 area_nodes(8,nel_dg_loc) = alfa31(ie)
214 area_nodes(9,nel_dg_loc) = alfa32(ie)
215 area_nodes(10,nel_dg_loc) = alfa33(ie)
216
217 area_nodes(11,nel_dg_loc) = beta11(ie)
218 area_nodes(12,nel_dg_loc) = beta12(ie)
219 area_nodes(13,nel_dg_loc) = beta13(ie)
220
221 area_nodes(14,nel_dg_loc) = beta21(ie)
222 area_nodes(15,nel_dg_loc) = beta22(ie)
223 area_nodes(16,nel_dg_loc) = beta23(ie)
224
225 area_nodes(17,nel_dg_loc) = beta31(ie)
226 area_nodes(18,nel_dg_loc) = beta32(ie)
227 area_nodes(19,nel_dg_loc) = beta33(ie)
228
229 area_nodes(20,nel_dg_loc) = gamma1(ie)
230 area_nodes(21,nel_dg_loc) = gamma2(ie)
231 area_nodes(22,nel_dg_loc) = gamma3(ie)
232
233 area_nodes(23,nel_dg_loc) = delta1(ie)
234 area_nodes(24,nel_dg_loc) = delta2(ie)
235 area_nodes(25,nel_dg_loc) = delta3(ie)
236
237 endif
238
239
240 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(1 -
241 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(nn
242 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(nn
243 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(1
244
245 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4countthen
246 nel_dg_loc = nel_dg_loc +1
247
249 zs(ne1), zs(ne2), zs(ne3),
250
251
252
253 faces(1,nel_dg_loc) = tag_mat(im)
254 faces(2,nel_dg_loc) = local_el_num(ie)
255 faces(3,nel_dg_loc) = 3
256
257 area_nodes(1,nel_dg_loc) = surf
258 area_nodes(2,nel_dg_loc) = alfa11(ie)
259 area_nodes(3,nel_dg_loc) = alfa12(ie)
260 area_nodes(4,nel_dg_loc) = alfa13(ie)
261
262 area_nodes(5,nel_dg_loc) = alfa21(ie)
263 area_nodes(6,nel_dg_loc) = alfa22(ie)
264 area_nodes(7,nel_dg_loc) = alfa23(ie)
265
266 area_nodes(8,nel_dg_loc) = alfa31(ie)
267 area_nodes(9,nel_dg_loc) = alfa32(ie)
268 area_nodes(10,nel_dg_loc) = alfa33(ie)
269
270 area_nodes(11,nel_dg_loc) = beta11(ie)
271 area_nodes(12,nel_dg_loc) = beta12(ie)
272 area_nodes(13,nel_dg_loc) = beta13(ie)
273
274 area_nodes(14,nel_dg_loc) = beta21(ie)
275 area_nodes(15,nel_dg_loc) = beta22(ie)
276 area_nodes(16,nel_dg_loc) = beta23(ie)
277
278 area_nodes(17,nel_dg_loc) = beta31(ie)
279 area_nodes(18,nel_dg_loc) = beta32(ie)
280 area_nodes(19,nel_dg_loc) = beta33(ie)
281
282 area_nodes(20,nel_dg_loc) = gamma1(ie)
283 area_nodes(21,nel_dg_loc) = gamma2(ie)
284 area_nodes(22,nel_dg_loc) = gamma3(ie)
285
286 area_nodes(23,nel_dg_loc) = delta1(ie)
287 area_nodes(24,nel_dg_loc) = delta2(ie)
288 area_nodes(25,nel_dg_loc) = delta3(ie)
289
290
291 endif
292
293
294 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(nn
295 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(nn
296 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(nn
297 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(nn
298
299
300 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4countthen
301 nel_dg_loc = nel_dg_loc +1
302
304 zs(ne1), zs(ne2), zs(ne3),
305
306
307
308 faces(1,nel_dg_loc) = tag_mat(im)
309 faces(2,nel_dg_loc) = local_el_num(ie)
310 faces(3,nel_dg_loc) = 4
311
312 area_nodes(1,nel_dg_loc) = surf
313 area_nodes(2,nel_dg_loc) = alfa11(ie)
314 area_nodes(3,nel_dg_loc) = alfa12(ie)
315 area_nodes(4,nel_dg_loc) = alfa13(ie)
316
317 area_nodes(5,nel_dg_loc) = alfa21(ie)
318 area_nodes(6,nel_dg_loc) = alfa22(ie)
319 area_nodes(7,nel_dg_loc) = alfa23(ie)
320
321 area_nodes(8,nel_dg_loc) = alfa31(ie)
322 area_nodes(9,nel_dg_loc) = alfa32(ie)
323 area_nodes(10,nel_dg_loc) = alfa33(ie)
324
325 area_nodes(11,nel_dg_loc) = beta11(ie)
326 area_nodes(12,nel_dg_loc) = beta12(ie)
327 area_nodes(13,nel_dg_loc) = beta13(ie)
328
329 area_nodes(14,nel_dg_loc) = beta21(ie)
330 area_nodes(15,nel_dg_loc) = beta22(ie)
331 area_nodes(16,nel_dg_loc) = beta23(ie)
332
333 area_nodes(17,nel_dg_loc) = beta31(ie)
334 area_nodes(18,nel_dg_loc) = beta32(ie)
335 area_nodes(19,nel_dg_loc) = beta33(ie)
336
337 area_nodes(20,nel_dg_loc) = gamma1(ie)
338 area_nodes(21,nel_dg_loc) = gamma2(ie)
339 area_nodes(22,nel_dg_loc) = gamma3(ie)
340
341 area_nodes(23,nel_dg_loc) = delta1(ie)
342 area_nodes(24,nel_dg_loc) = delta2(ie)
343 area_nodes(25,nel_dg_loc) = delta3(ie)
344
345
346 endif
347
348
349 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(1
350 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(nn
351 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(nn
352 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(1
353
354
355 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4countthen
356 nel_dg_loc = nel_dg_loc +1
357
359 zs(ne1), zs(ne2), zs(ne3),
360
361 faces(1,nel_dg_loc) = tag_mat(im)
362 faces(2,nel_dg_loc) = local_el_num(ie)
363 faces(3,nel_dg_loc) = 5
364
365 area_nodes(1,nel_dg_loc) = surf
366 area_nodes(2,nel_dg_loc) = alfa11(ie)
367 area_nodes(3,nel_dg_loc) = alfa12(ie)
368 area_nodes(4,nel_dg_loc) = alfa13(ie)
369
370 area_nodes(5,nel_dg_loc) = alfa21(ie)
371 area_nodes(6,nel_dg_loc) = alfa22(ie)
372 area_nodes(7,nel_dg_loc) = alfa23(ie)
373
374 area_nodes(8,nel_dg_loc) = alfa31(ie)
375 area_nodes(9,nel_dg_loc) = alfa32(ie)
376 area_nodes(10,nel_dg_loc) = alfa33(ie)
377
378 area_nodes(11,nel_dg_loc) = beta11(ie)
379 area_nodes(12,nel_dg_loc) = beta12(ie)
380 area_nodes(13,nel_dg_loc) = beta13(ie)
381
382 area_nodes(14,nel_dg_loc) = beta21(ie)
383 area_nodes(15,nel_dg_loc) = beta22(ie)
384 area_nodes(16,nel_dg_loc) = beta23(ie)
385
386 area_nodes(17,nel_dg_loc) = beta31(ie)
387 area_nodes(18,nel_dg_loc) = beta32(ie)
388 area_nodes(19,nel_dg_loc) = beta33(ie)
389
390 area_nodes(20,nel_dg_loc) = gamma1(ie)
391 area_nodes(21,nel_dg_loc) = gamma2(ie)
392 area_nodes(22,nel_dg_loc) = gamma3(ie)
393
394 area_nodes(23,nel_dg_loc) = delta1(ie)
395 area_nodes(24,nel_dg_loc) = delta2(ie)
396 area_nodes(25,nel_dg_loc) = delta3(ie)
397
398 endif
399
400
401 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(1
402 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(nn
403 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(nn
404 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(1
405
406
407 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4countthen
408 nel_dg_loc = nel_dg_loc +1
409
411 zs(ne1), zs(ne2), zs(ne3),
412
413
414
415
416 faces(1,nel_dg_loc) = tag_mat(im)
417 faces(2,nel_dg_loc) = local_el_num(ie)
418 faces(3,nel_dg_loc) = 6
419
420 area_nodes(1,nel_dg_loc) = surf
421 area_nodes(2,nel_dg_loc) = alfa11(ie)
422 area_nodes(3,nel_dg_loc) = alfa12(ie)
423 area_nodes(4,nel_dg_loc) = alfa13(ie)
424
425 area_nodes(5,nel_dg_loc) = alfa21(ie)
426 area_nodes(6,nel_dg_loc) = alfa22(ie)
427 area_nodes(7,nel_dg_loc) = alfa23(ie)
428
429 area_nodes(8,nel_dg_loc) = alfa31(ie)
430 area_nodes(9,nel_dg_loc) = alfa32(ie)
431 area_nodes(10,nel_dg_loc) = alfa33(ie)
432
433 area_nodes(11,nel_dg_loc) = beta11(ie)
434 area_nodes(12,nel_dg_loc) = beta12(ie)
435 area_nodes(13,nel_dg_loc) = beta13(ie)
436
437 area_nodes(14,nel_dg_loc) = beta21(ie)
438 area_nodes(15,nel_dg_loc) = beta22(ie)
439 area_nodes(16,nel_dg_loc) = beta23(ie)
440
441 area_nodes(17,nel_dg_loc) = beta31(ie)
442 area_nodes(18,nel_dg_loc) = beta32(ie)
443 area_nodes(19,nel_dg_loc) = beta33(ie)
444
445 area_nodes(20,nel_dg_loc) = gamma1(ie)
446 area_nodes(21,nel_dg_loc) = gamma2(ie)
447 area_nodes(22,nel_dg_loc) = gamma3(ie)
448
449 area_nodes(23,nel_dg_loc) = delta1(ie)
450 area_nodes(24,nel_dg_loc) = delta2(ie)
451 area_nodes(25,nel_dg_loc) = delta3(ie)
452
453 endif
454 endif
455 enddo
456 enddo
457
458
459
460 return
461
subroutine get_area_face(x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, surf, ielem)
Computes area of a face (quad).