69 subroutine setup_dg(nm, sd, tag_mat, cs_nnz_loc, cs_loc, &
70 nn_loc, local_n_num, ne_loc, local_el_num, &
72 nel_dg_loc, nel_dg_glo, &
73 i4count, mpi_id, mpi_comm, &
74 alfa11, alfa12, alfa13, &
75 alfa21, alfa22, alfa23, &
76 alfa31, alfa32, alfa33, &
77 beta11, beta12, beta13, &
78 beta21, beta22, beta23, &
79 beta31, beta32, beta33, &
80 gamma1, gamma2, gamma3, &
81 delta1, delta2, delta3, &
89 integer*4 :: nm, cs_nnz_loc, nn_loc, ne_loc, nel_dg_loc, nel_dg_glo
90 integer*4 :: im, nn, ie, ned, err_out
91 integer*4 :: ne1, ne2, ne3, ne4, ic1, ic2, ic3, ic4
92 integer*4 :: ne5, ne6, ne7, ne8, ic5, ic6, ic7, ic8
93 integer*4 :: mpi_comm, mpi_id, mpi_ierr
95 integer*4,
dimension(nm) :: tag_mat, sd
96 integer*4,
dimension(0:cs_nnz_loc) :: cs_loc
97 integer*4,
dimension(nn_loc) :: local_n_num, i4count
98 integer*4,
dimension(ne_loc) :: local_el_num
100 integer*4,
dimension(3,nel_dg_loc),
intent(inout) :: faces
104 real*8,
dimension(nn_loc) :: xs,ys,zs
105 real*8,
dimension(ne_loc) :: alfa11,alfa12,alfa13
106 real*8,
dimension(ne_loc) :: alfa21,alfa22,alfa23
107 real*8,
dimension(ne_loc) :: alfa31,alfa32,alfa33
108 real*8,
dimension(ne_loc) :: beta11,beta12,beta13
109 real*8,
dimension(ne_loc) :: beta21,beta22,beta23
110 real*8,
dimension(ne_loc) :: beta31,beta32,beta33
111 real*8,
dimension(ne_loc) :: gamma1,gamma2,gamma3
112 real*8,
dimension(ne_loc) :: delta1,delta2,delta3
114 real*8,
dimension(25,nel_dg_loc),
intent(inout) :: area_nodes
129 if (cs_loc(cs_loc(ie -1) + 0) .eq. tag_mat(im))
then
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
138 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4count
then
139 nel_dg_loc = nel_dg_loc +1
142 zs(ne1), zs(ne2), zs(ne3),
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
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)
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)
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)
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)
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)
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)
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)
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)
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
192 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4count
then
193 nel_dg_loc = nel_dg_loc +1
196 zs(ne1), zs(ne2), zs(ne3),
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
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)
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)
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)
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)
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)
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)
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)
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)
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
245 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4count
then
246 nel_dg_loc = nel_dg_loc +1
249 zs(ne1), zs(ne2), zs(ne3),
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
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)
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)
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)
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)
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)
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)
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)
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)
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
300 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4count
then
301 nel_dg_loc = nel_dg_loc +1
304 zs(ne1), zs(ne2), zs(ne3),
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
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)
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)
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)
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)
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)
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)
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)
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)
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
355 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4count
then
356 nel_dg_loc = nel_dg_loc +1
359 zs(ne1), zs(ne2), zs(ne3),
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
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)
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)
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)
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)
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)
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)
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)
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)
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
407 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4count
then
408 nel_dg_loc = nel_dg_loc +1
411 zs(ne1), zs(ne2), zs(ne3),
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
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)
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)
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)
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)
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)
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)
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)
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)