/home/kcamus/qaas_runs/169-443-9681/intel/AMG/build/AMG/AMG/parcsr_mv/par_csr_matop.c: 102 - 276
--------------------------------------------------------------------------------

102: #pragma omp parallel private(ii, i1, jj_row_begin_diag, jj_row_begin_offd, jj_count_diag, jj_count_offd, jj2, i2, jj3, i3) 
[...]
108:     ii = hypre_GetThreadNum();
109:     if (ii < rest)
110:     {
111:        ns = ii*size+ii;
112:        ne = (ii+1)*size+ii+1;
113:     }
114:     else
115:     {
116:        ns = ii*size+rest;
117:        ne = (ii+1)*size+rest;
118:     }
119:     jj_count_diag = start_indexing;
120:     jj_count_offd = start_indexing;
121: 
122:     if (num_cols_diag_B || num_cols_offd_C)
123:     B_marker = hypre_CTAlloc(HYPRE_Int, num_cols_diag_B+num_cols_offd_C);
124:     for (i1 = 0; i1 < num_cols_diag_B+num_cols_offd_C; i1++)
125:       B_marker[i1] = -1;
126: 
127:     for (i1 = ns; i1 < ne; i1++)
[...]
135:       if ( allsquare ) {
136:          B_marker[i1] = jj_count_diag;
137:          jj_count_diag++;
[...]
144:       if (num_cols_offd_A)
145:       {
146:          for (jj2 = A_offd_i[i1]; jj2 < A_offd_i[i1+1]; jj2++)
147:          {
148:             i2 = A_offd_j[jj2];
[...]
154:             for (jj3 = B_ext_offd_i[i2]; jj3 < B_ext_offd_i[i2+1]; jj3++)
155:             {
156:                i3 = num_cols_diag_B+B_ext_offd_j[jj3];
[...]
164:                if (B_marker[i3] < jj_row_begin_offd)
165:                {
166:                   B_marker[i3] = jj_count_offd;
167:                   jj_count_offd++;
168:                } 
169:             }
170:             for (jj3 = B_ext_diag_i[i2]; jj3 < B_ext_diag_i[i2+1]; jj3++)
171:             {
172:                i3 = B_ext_diag_j[jj3];
173:                   
174:                if (B_marker[i3] < jj_row_begin_diag)
175:                {
176:                   B_marker[i3] = jj_count_diag;
177:                   jj_count_diag++;
[...]
187:       for (jj2 = A_diag_i[i1]; jj2 < A_diag_i[i1+1]; jj2++)
188:       {
189:          i2 = A_diag_j[jj2];
[...]
195:          for (jj3 = B_diag_i[i2]; jj3 < B_diag_i[i2+1]; jj3++)
196:          {
197:             i3 = B_diag_j[jj3];
[...]
205:             if (B_marker[i3] < jj_row_begin_diag)
206:             {
207:                B_marker[i3] = jj_count_diag;
208:                jj_count_diag++;
[...]
216:          if (num_cols_offd_B)
217:          { 
218:             for (jj3 = B_offd_i[i2]; jj3 < B_offd_i[i2+1]; jj3++)
219:             {
220:                i3 = num_cols_diag_B+map_B_to_C[B_offd_j[jj3]];
[...]
228:                if (B_marker[i3] < jj_row_begin_offd)
229:                {
230:                   B_marker[i3] = jj_count_offd;
231:                   jj_count_offd++;
[...]
241:       (*C_diag_i)[i1] = jj_row_begin_diag;
242:       (*C_offd_i)[i1] = jj_row_begin_offd;
243:       
244:     }
245:     jj_count_diag_array[ii] = jj_count_diag;
246:     jj_count_offd_array[ii] = jj_count_offd;
247: 
248:     hypre_TFree(B_marker);
249: #ifdef HYPRE_USING_OPENMP
250: #pragma omp barrier
251: #endif
252: 
253:     if (ii)
254:     {
255:        jj_count_diag = jj_count_diag_array[0];
256:        jj_count_offd = jj_count_offd_array[0];
257:        for (i1 = 1; i1 < ii; i1++)
258:        {
259:           jj_count_diag += jj_count_diag_array[i1];
260:           jj_count_offd += jj_count_offd_array[i1];
261:        }
262: 
263:        for (i1 = ns; i1 < ne; i1++)
264:        {
265:           (*C_diag_i)[i1] += jj_count_diag;
266:           (*C_offd_i)[i1] += jj_count_offd;
267:        }
268:     }
269:     else
270:     {
271:        (*C_diag_i)[num_rows_diag_A] = 0;
272:        (*C_offd_i)[num_rows_diag_A] = 0;
273:        for (i1 = 0; i1 < num_threads; i1++)
274:        {
275:           (*C_diag_i)[num_rows_diag_A] += jj_count_diag_array[i1];
276:           (*C_offd_i)[num_rows_diag_A] += jj_count_offd_array[i1];
