42 nn_loc, local_n_num, ne_loc, local_el_num, &
44 nel_dg_loc, nel_dg_glo, &
45 i4count, mpi_id, mpi_comm)
51 integer*4 :: nm, cs_nnz_loc, nn_loc, ne_loc, nel_dg_loc, nel_dg_glo
52 integer*4 :: im, nn, ie, ned, err_out
53 integer*4 :: ne1, ne2, ne3, ne4, ic1, ic2, ic3, ic4
54 integer*4 :: ne5, ne6, ne7, ne8, ic5, ic6, ic7, ic8
55 integer*4 :: mpi_comm, mpi_id, mpi_ierr
57 integer*4,
dimension(nm) :: tag_mat, sd
58 integer*4,
dimension(0:cs_nnz_loc) :: cs_loc
59 integer*4,
dimension(nn_loc) :: local_n_num, i4count
60 integer*4,
dimension(ne_loc) :: local_el_num
62 real*8,
dimension(nn_loc) :: xs,ys,zs
76 if (cs_loc(cs_loc(ie -1) + 0) .eq. tag_mat(im))
then
78 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(1 -
79 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(1
80 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(1
81 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(1
83 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4count
then
84 nel_dg_loc = nel_dg_loc +1
87 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(1 -
88 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(nn
89 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(nn
90 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(1
92 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4count
then
93 nel_dg_loc = nel_dg_loc +1
96 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(1 -
97 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(nn
98 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(nn
99 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(1
101 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4count
then
102 nel_dg_loc = nel_dg_loc +1
105 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(1 -1) +(nn
106 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(nn
107 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(nn
108 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(nn
110 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4count
then
111 nel_dg_loc = nel_dg_loc +1
114 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(1
115 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(1 -1) +nn*(nn -1) +(nn
116 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(nn
117 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(1
120 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4count
then
121 nel_dg_loc = nel_dg_loc +1
124 ne1 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(1
125 ne2 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(1 -1) +(nn
126 ne3 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(nn
127 ne4 = cs_loc(cs_loc(ie -1) +nn*nn*(nn -1) +nn*(nn -1) +(1
130 if ((i4count(ne1).ne.0) .and. (i4count(ne2).ne.0) .and. (i4count
then
131 nel_dg_loc = nel_dg_loc +1
139 call mpi_allreduce(nel_dg_loc, nel_dg_glo, 1, speed_integer, mpi_sum
subroutine get_dime_dg(nm, sd, tag_mat, cs_nnz_loc, cs_loc, nn_loc, local_n_num, ne_loc, local_el_num, xs, ys, zs, nel_dg_loc, nel_dg_glo, i4count, mpi_id, mpi_comm)
Counts number of DG elements (local and global)