From 096d21671af782f49c248d990ce74e231174f9f9 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Wed, 11 Sep 2024 21:27:54 -0400 Subject: [PATCH 1/9] Fix shadow warnings at parcsr_ls --- src/parcsr_ls/par_2s_interp.c | 1 - src/parcsr_ls/par_amg.c | 1 - src/parcsr_ls/par_amg_setup.c | 30 +++++++------- src/parcsr_ls/par_amgdd_helpers.c | 1 - src/parcsr_ls/par_coarsen.c | 6 +-- src/parcsr_ls/par_fsai_setup.c | 16 +++---- src/parcsr_ls/par_lr_restr.c | 4 +- src/parcsr_ls/par_mgr_solve.c | 2 +- src/parcsr_ls/par_mod_lr_interp.c | 2 - src/parcsr_ls/par_rap.c | 7 ++-- src/parcsr_ls/par_strength.c | 69 +++++++++++++++---------------- src/parcsr_ls/par_sv_interp.c | 2 +- src/parcsr_ls/par_sv_interp_ln.c | 3 +- 13 files changed, 67 insertions(+), 77 deletions(-) diff --git a/src/parcsr_ls/par_2s_interp.c b/src/parcsr_ls/par_2s_interp.c index 05594b709e..a560a0aa5e 100644 --- a/src/parcsr_ls/par_2s_interp.c +++ b/src/parcsr_ls/par_2s_interp.c @@ -856,7 +856,6 @@ hypre_BoomerAMGBuildModPartialExtPEInterpHost( hypre_ParCSRMatrix *A, if (num_functions > 1) { HYPRE_Int *int_buf_data = NULL; - HYPRE_Int num_sends, startc; HYPRE_Int num_cols_A_offd = hypre_CSRMatrixNumCols(A_offd); dof_func_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd, memory_location_P); index = 0; diff --git a/src/parcsr_ls/par_amg.c b/src/parcsr_ls/par_amg.c index b10876e1d4..8561bedece 100644 --- a/src/parcsr_ls/par_amg.c +++ b/src/parcsr_ls/par_amg.c @@ -615,7 +615,6 @@ hypre_BoomerAMGDestroy( void *data ) } if (grid_relax_type) { - HYPRE_Int num_levels = hypre_ParAMGDataNumLevels(amg_data); if (grid_relax_type[1] == 15 || grid_relax_type[3] == 15 ) { if (grid_relax_type[1] == 15) diff --git a/src/parcsr_ls/par_amg_setup.c b/src/parcsr_ls/par_amg_setup.c index e21817d49b..e0900ee28b 100644 --- a/src/parcsr_ls/par_amg_setup.c +++ b/src/parcsr_ls/par_amg_setup.c @@ -106,6 +106,7 @@ hypre_BoomerAMGSetup( void *amg_vdata, hypre_ParCSRMatrix *P = NULL; hypre_ParCSRMatrix *R = NULL; hypre_ParCSRMatrix *A_H; + hypre_ParCSRMatrix *Q = NULL; hypre_ParCSRMatrix *AN = NULL; hypre_ParCSRMatrix *P1; hypre_ParCSRMatrix *P2; @@ -228,6 +229,7 @@ hypre_BoomerAMGSetup( void *amg_vdata, HYPRE_Int *num_grid_sweeps = hypre_ParAMGDataNumGridSweeps(amg_data); HYPRE_Int ns = num_grid_sweeps[1]; + HYPRE_Int **grid_relax_points; HYPRE_Real wall_time = 0.0; /* for debugging instrumentation */ HYPRE_Int add_end; @@ -1656,8 +1658,8 @@ hypre_BoomerAMGSetup( void *amg_vdata, * coarsest solve to be a single sweep of default smoother or smoother set by user */ if ((coarse_size == 0) || (coarse_size == fine_size)) { - HYPRE_Int *num_grid_sweeps = hypre_ParAMGDataNumGridSweeps(amg_data); - HYPRE_Int **grid_relax_points = hypre_ParAMGDataGridRelaxPoints(amg_data); + num_grid_sweeps = hypre_ParAMGDataNumGridSweeps(amg_data); + grid_relax_points = hypre_ParAMGDataGridRelaxPoints(amg_data); if (grid_relax_type[3] == 9 || grid_relax_type[3] == 99 || grid_relax_type[3] == 19 || grid_relax_type[3] == 98) { @@ -1665,9 +1667,9 @@ hypre_BoomerAMGSetup( void *amg_vdata, num_grid_sweeps[3] = 1; if (grid_relax_points) { grid_relax_points[3][0] = 0; } } - if (S) { hypre_ParCSRMatrixDestroy(S); } - if (SN) { hypre_ParCSRMatrixDestroy(SN); } - if (AN) { hypre_ParCSRMatrixDestroy(AN); } + hypre_ParCSRMatrixDestroy(S); + hypre_ParCSRMatrixDestroy(SN); + hypre_ParCSRMatrixDestroy(AN); //hypre_TFree(CF_marker, HYPRE_MEMORY_HOST); if (level > 0) { @@ -2506,10 +2508,8 @@ hypre_BoomerAMGSetup( void *amg_vdata, * coarsest solve to be a single sweep of Jacobi */ if ( (coarse_size == 0) || (coarse_size == fine_size) ) { - HYPRE_Int *num_grid_sweeps = - hypre_ParAMGDataNumGridSweeps(amg_data); - HYPRE_Int **grid_relax_points = - hypre_ParAMGDataGridRelaxPoints(amg_data); + num_grid_sweeps = hypre_ParAMGDataNumGridSweeps(amg_data); + grid_relax_points = hypre_ParAMGDataGridRelaxPoints(amg_data); if (grid_relax_type[3] == 9 || grid_relax_type[3] == 99 || grid_relax_type[3] == 19 || grid_relax_type[3] == 98) { @@ -2772,7 +2772,6 @@ hypre_BoomerAMGSetup( void *amg_vdata, HYPRE_ANNOTATE_REGION_BEGIN("%s", "RAP"); if (ns == 1) { - hypre_ParCSRMatrix *Q = NULL; if (hypre_ParAMGDataModularizedMatMat(amg_data)) { Q = hypre_ParCSRMatMat(A_array[level], P); @@ -2797,8 +2796,7 @@ hypre_BoomerAMGSetup( void *amg_vdata, if (nongalerk_tol_l > 0.0) { /* Build Non-Galerkin Coarse Grid */ - hypre_ParCSRMatrix *Q = NULL; - hypre_BoomerAMGBuildNonGalerkinCoarseOperator(&A_H, Q, + hypre_BoomerAMGBuildNonGalerkinCoarseOperator(&A_H, NULL, 0.333 * strong_threshold, max_row_sum, num_functions, dof_func_data, hypre_IntArrayData(CF_marker_array[level]), /* nongalerk_tol, sym_collapse, lump_percent, beta );*/ @@ -2828,7 +2826,7 @@ hypre_BoomerAMGSetup( void *amg_vdata, if (nongalerk_tol_l > 0.0) { /* Construct AP, and then RAP */ - hypre_ParCSRMatrix *Q = NULL; + Q = NULL; if (hypre_ParAMGDataModularizedMatMat(amg_data)) { Q = hypre_ParCSRMatMat(A_array[level], P); @@ -2862,7 +2860,7 @@ hypre_BoomerAMGSetup( void *amg_vdata, else if (rap2) { /* Use two matrix products to generate A_H */ - hypre_ParCSRMatrix *Q = NULL; + Q = NULL; if (hypre_ParAMGDataModularizedMatMat(amg_data)) { Q = hypre_ParCSRMatMat(A_array[level], P); @@ -2996,7 +2994,7 @@ hypre_BoomerAMGSetup( void *amg_vdata, if (nongalerk_tol_l > 0.0) { /* Construct AP, and then RAP */ - hypre_ParCSRMatrix *Q = NULL; + Q = NULL; if (hypre_ParAMGDataModularizedMatMat(amg_data)) { Q = hypre_ParCSRMatMat(A_array[level], P_array[level]); @@ -3048,7 +3046,7 @@ hypre_BoomerAMGSetup( void *amg_vdata, else if (rap2) { /* Use two matrix products to generate A_H */ - hypre_ParCSRMatrix *Q = NULL; + Q = NULL; if (hypre_ParAMGDataModularizedMatMat(amg_data)) { Q = hypre_ParCSRMatMat(A_array[level], P_array[level]); diff --git a/src/parcsr_ls/par_amgdd_helpers.c b/src/parcsr_ls/par_amgdd_helpers.c index 26645f35c9..f64eea39dc 100644 --- a/src/parcsr_ls/par_amgdd_helpers.c +++ b/src/parcsr_ls/par_amgdd_helpers.c @@ -606,7 +606,6 @@ hypre_BoomerAMGDD_FindNeighborProcessors( hypre_ParCSRMatrix *A, } // Loop over the requested dofs for this destination proc - HYPRE_Int j; for (j = 0; j < num_requested_dofs; j++) { // Get the local index for this dof on this processor diff --git a/src/parcsr_ls/par_coarsen.c b/src/parcsr_ls/par_coarsen.c index d2cafbb8d4..dadd19a392 100644 --- a/src/parcsr_ls/par_coarsen.c +++ b/src/parcsr_ls/par_coarsen.c @@ -1132,9 +1132,9 @@ hypre_BoomerAMGCoarsenRuge( hypre_ParCSRMatrix *S, { S_ext = hypre_ParCSRMatrixExtractBExt(S, S, 0); } - S_ext_i = hypre_CSRMatrixI(S_ext); - S_ext_j = hypre_CSRMatrixBigJ(S_ext); - HYPRE_Int num_nonzeros = S_ext_i[num_cols_offd]; + S_ext_i = hypre_CSRMatrixI(S_ext); + S_ext_j = hypre_CSRMatrixBigJ(S_ext); + num_nonzeros = S_ext_i[num_cols_offd]; /*first_col = hypre_ParCSRMatrixFirstColDiag(S); col_0 = first_col-1; col_n = col_0+num_variables; */ diff --git a/src/parcsr_ls/par_fsai_setup.c b/src/parcsr_ls/par_fsai_setup.c index 9794de5922..8d16fd6c62 100644 --- a/src/parcsr_ls/par_fsai_setup.c +++ b/src/parcsr_ls/par_fsai_setup.c @@ -720,7 +720,7 @@ hypre_FSAISetupOMPDyn( void *fsai_vdata, HYPRE_Int max_cand_size; /* Max size of kg_pos */ /* Local variables */ - HYPRE_Int i, j, jj; + HYPRE_Int iG, jG, jjG; char msg[512]; /* Warning message */ HYPRE_Complex *twspace; /* shared work space for omp threads */ @@ -753,7 +753,7 @@ hypre_FSAISetupOMPDyn( void *fsai_vdata, hypre_Vector *A_subrow; /* Vector holding A[i, P] */ hypre_Vector *kap_grad; /* Vector holding the Kaporin gradient values */ HYPRE_Int *kg_pos; /* Indices of nonzero entries of kap_grad */ - HYPRE_Int *kg_marker; /* Marker array with nonzeros pointing to kg_pos */ + HYPRE_Int *kg_marker; /* Marker array with nnzs pointing to kg_pos */ HYPRE_Int *marker; /* Marker array with nonzeros pointing to P */ HYPRE_Int *pattern; /* Array holding column indices of G[i,:] */ HYPRE_Int patt_size; /* Number of entries in current pattern */ @@ -899,14 +899,14 @@ hypre_FSAISetupOMPDyn( void *fsai_vdata, /* Reorder array */ G_i[0] = 0; - for (i = 0; i < num_rows_diag_A; i++) + for (iG = 0; iG < num_rows_diag_A; iG++) { - G_i[i + 1] = G_i[i] + G_nnzcnt[i]; - jj = i * max_nnzrow_diag_G; - for (j = G_i[i]; j < G_i[i + 1]; j++) + G_i[iG + 1] = G_i[iG] + G_nnzcnt[iG]; + jjG = iG * max_nnzrow_diag_G; + for (jG = G_i[iG]; jG < G_i[iG + 1]; jG++) { - G_j[j] = G_j[jj]; - G_a[j] = G_a[jj++]; + G_j[jG] = G_j[jjG]; + G_a[jG] = G_a[jjG++]; } } diff --git a/src/parcsr_ls/par_lr_restr.c b/src/parcsr_ls/par_lr_restr.c index 1c7ce2a7c3..a7edad0c48 100644 --- a/src/parcsr_ls/par_lr_restr.c +++ b/src/parcsr_ls/par_lr_restr.c @@ -638,7 +638,7 @@ hypre_BoomerAMGBuildRestrDist2AIR( hypre_ParCSRMatrix *A, /* open row j1 and fill ja and a */ for (k = A_diag_i[j1]; k < A_diag_i[j1 + 1]; k++) { - HYPRE_Int k1 = A_diag_j[k]; + k1 = A_diag_j[k]; if (CF_marker[k1] < 0) { send_FF2_j[i1] = col_start + k1; @@ -650,7 +650,7 @@ hypre_BoomerAMGBuildRestrDist2AIR( hypre_ParCSRMatrix *A, { for (k = A_offd_i[j1]; k < A_offd_i[j1 + 1]; k++) { - HYPRE_Int k1 = A_offd_j[k]; + k1 = A_offd_j[k]; if (CF_marker_offd[k1] < 0) { send_FF2_j[i1] = col_map_offd_A[k1]; diff --git a/src/parcsr_ls/par_mgr_solve.c b/src/parcsr_ls/par_mgr_solve.c index 3d75cb3436..5c54303a79 100644 --- a/src/parcsr_ls/par_mgr_solve.c +++ b/src/parcsr_ls/par_mgr_solve.c @@ -752,7 +752,7 @@ hypre_MGRCycle( void *mgr_vdata, { hypre_BoomerAMGRelax(A_array[fine_grid], F_array[fine_grid], NULL, level_smooth_type[fine_grid], - 0, fp_one, fp_one, l1_norms, + 0, fp_one, fp_one, l1_norms, //NULL, U_array[fine_grid], Vtemp, Ztemp); } } diff --git a/src/parcsr_ls/par_mod_lr_interp.c b/src/parcsr_ls/par_mod_lr_interp.c index 7fc998942c..4bd7ed6eb4 100644 --- a/src/parcsr_ls/par_mod_lr_interp.c +++ b/src/parcsr_ls/par_mod_lr_interp.c @@ -851,7 +851,6 @@ hypre_BoomerAMGBuildModExtPIInterpHost(hypre_ParCSRMatrix *A, if (num_functions > 1) { HYPRE_Int *int_buf_data = NULL; - HYPRE_Int num_sends, startc; HYPRE_Int num_cols_A_offd = hypre_CSRMatrixNumCols(A_offd); dof_func_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd, HYPRE_MEMORY_HOST); index = 0; @@ -1433,7 +1432,6 @@ hypre_BoomerAMGBuildModExtPEInterpHost(hypre_ParCSRMatrix *A, if (num_functions > 1) { HYPRE_Int *int_buf_data = NULL; - HYPRE_Int num_sends, startc; HYPRE_Int num_cols_A_offd = hypre_CSRMatrixNumCols(A_offd); dof_func_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd, HYPRE_MEMORY_HOST); index = 0; diff --git a/src/parcsr_ls/par_rap.c b/src/parcsr_ls/par_rap.c index c432b36940..f94fe7060b 100644 --- a/src/parcsr_ls/par_rap.c +++ b/src/parcsr_ls/par_rap.c @@ -1625,7 +1625,8 @@ hypre_BoomerAMGBuildCoarseOperatorKT( hypre_ParCSRMatrix *RT, HYPRE_Int i = hypre_UnorderedIntMapGet(&send_map_elmts_RT_inverse_map, ic); if (i != -1) { - for (j = send_map_elmts_starts_RT_aggregated[i]; j < send_map_elmts_starts_RT_aggregated[i + 1]; + for (j = send_map_elmts_starts_RT_aggregated[i]; + j < send_map_elmts_starts_RT_aggregated[i + 1]; j++) { HYPRE_Int jj = send_map_elmts_RT_aggregated[j]; @@ -1860,8 +1861,8 @@ hypre_BoomerAMGBuildCoarseOperatorKT( hypre_ParCSRMatrix *RT, for (jj1 = ra_row_begin_diag; jj1 < RA_diag.num_nonzeros; jj1++) { - HYPRE_Int i1 = RA_diag.j[jj1 - ra_row_begin_diag]; - HYPRE_Real r_a_product = RA_diag.data[jj1 - ra_row_begin_diag]; + i1 = RA_diag.j[jj1 - ra_row_begin_diag]; + r_a_product = RA_diag.data[jj1 - ra_row_begin_diag]; /*----------------------------------------------------------------- * Loop over entries in row i1 of P_diag. diff --git a/src/parcsr_ls/par_strength.c b/src/parcsr_ls/par_strength.c index dc667cdfef..7b40c78d79 100644 --- a/src/parcsr_ls/par_strength.c +++ b/src/parcsr_ls/par_strength.c @@ -122,7 +122,7 @@ hypre_BoomerAMGCreateSHost(hypre_ParCSRMatrix *A, HYPRE_Int *dof_func_offd; HYPRE_Int num_sends; HYPRE_Int *int_buf_data; - HYPRE_Int index, start, j; + HYPRE_Int index, start, stop, j; HYPRE_Int *prefix_sum_workspace; @@ -204,7 +204,8 @@ hypre_BoomerAMGCreateSHost(hypre_ParCSRMatrix *A, num_sends = hypre_ParCSRCommPkgNumSends(comm_pkg); if (num_functions > 1) { - int_buf_data = hypre_CTAlloc(HYPRE_Int, hypre_ParCSRCommPkgSendMapStart(comm_pkg, num_sends), + int_buf_data = hypre_CTAlloc(HYPRE_Int, + hypre_ParCSRCommPkgSendMapStart(comm_pkg, num_sends), HYPRE_MEMORY_HOST); index = 0; for (i = 0; i < num_sends; i++) @@ -227,10 +228,9 @@ hypre_BoomerAMGCreateSHost(hypre_ParCSRMatrix *A, /* give S same nonzero structure as A */ #ifdef HYPRE_USING_OPENMP - #pragma omp parallel private(i,diag,row_scale,row_sum,jA,jS) + #pragma omp parallel private(i,diag,row_scale,row_sum,jA,jS,start,stop) #endif { - HYPRE_Int start, stop; hypre_GetSimpleThreadPartition(&start, &stop, num_variables); HYPRE_Int jS_diag = 0, jS_offd = 0; @@ -590,7 +590,7 @@ hypre_BoomerAMGCreateSFromCFMarker(hypre_ParCSRMatrix *A, hypre_CSRMatrix *A_diag = hypre_ParCSRMatrixDiag(A); HYPRE_Int *A_diag_i = hypre_CSRMatrixI(A_diag); HYPRE_Real *A_diag_data = hypre_CSRMatrixData(A_diag); - + HYPRE_BigInt *col_map_offd_A = hypre_ParCSRMatrixColMapOffd(A); hypre_CSRMatrix *A_offd = hypre_ParCSRMatrixOffd(A); HYPRE_Int *A_offd_i = hypre_CSRMatrixI(A_offd); @@ -618,7 +618,7 @@ hypre_BoomerAMGCreateSFromCFMarker(hypre_ParCSRMatrix *A, HYPRE_Real diag, row_scale, row_sum; HYPRE_Int i, jj, jA, jS; - HYPRE_Int num_sends, start, j, index; + HYPRE_Int num_sends, start, stop, j, index; HYPRE_Int *int_buf_data; HYPRE_Int ierr = 0; @@ -669,18 +669,16 @@ hypre_BoomerAMGCreateSFromCFMarker(hypre_ParCSRMatrix *A, if (num_cols_offd) { A_offd_data = hypre_CSRMatrixData(A_offd); - hypre_CSRMatrixJ(S_offd) = hypre_CTAlloc(HYPRE_Int, num_nonzeros_offd, HYPRE_MEMORY_HOST); + hypre_CSRMatrixJ(S_offd) = hypre_CTAlloc(HYPRE_Int, num_nonzeros_offd, HYPRE_MEMORY_HOST); S_temp_offd_j = hypre_CSRMatrixJ(S_offd); - HYPRE_BigInt *col_map_offd_S = hypre_TAlloc(HYPRE_BigInt, num_cols_offd, HYPRE_MEMORY_HOST); + HYPRE_BigInt *col_map_offd_S = hypre_TAlloc(HYPRE_BigInt, num_cols_offd, HYPRE_MEMORY_HOST); hypre_ParCSRMatrixColMapOffd(S) = col_map_offd_S; if (num_functions > 1) { - dof_func_offd = hypre_CTAlloc(HYPRE_Int, num_cols_offd, HYPRE_MEMORY_HOST); + dof_func_offd = hypre_CTAlloc(HYPRE_Int, num_cols_offd, HYPRE_MEMORY_HOST); } - S_offd_j = hypre_CTAlloc(HYPRE_Int, num_nonzeros_offd, HYPRE_MEMORY_HOST); - - HYPRE_BigInt *col_map_offd_A = hypre_ParCSRMatrixColMapOffd(A); + S_offd_j = hypre_CTAlloc(HYPRE_Int, num_nonzeros_offd, HYPRE_MEMORY_HOST); #ifdef HYPRE_USING_OPENMP #pragma omp parallel for private(i) HYPRE_SMP_SCHEDULE @@ -715,7 +713,7 @@ hypre_BoomerAMGCreateSFromCFMarker(hypre_ParCSRMatrix *A, } } - comm_handle = hypre_ParCSRCommHandleCreate( 11, comm_pkg, int_buf_data, dof_func_offd); + comm_handle = hypre_ParCSRCommHandleCreate(11, comm_pkg, int_buf_data, dof_func_offd); hypre_ParCSRCommHandleDestroy(comm_handle); hypre_TFree(int_buf_data, HYPRE_MEMORY_HOST); @@ -724,27 +722,29 @@ hypre_BoomerAMGCreateSFromCFMarker(hypre_ParCSRMatrix *A, /*------------------------------------------------------------------- * Get the CF_marker data for the off-processor columns *-------------------------------------------------------------------*/ - if (num_cols_offd) { CF_marker_offd = hypre_CTAlloc(HYPRE_Int, num_cols_offd, HYPRE_MEMORY_HOST); } + CF_marker_offd = hypre_CTAlloc(HYPRE_Int, num_cols_offd, HYPRE_MEMORY_HOST); if (!comm_pkg) { hypre_MatvecCommPkgCreate(A); comm_pkg = hypre_ParCSRMatrixCommPkg(A); } num_sends = hypre_ParCSRCommPkgNumSends(comm_pkg); - int_buf_data = hypre_CTAlloc(HYPRE_Int, hypre_ParCSRCommPkgSendMapStart(comm_pkg, - num_sends), HYPRE_MEMORY_HOST); + int_buf_data = hypre_CTAlloc(HYPRE_Int, + hypre_ParCSRCommPkgSendMapStart(comm_pkg, num_sends), + HYPRE_MEMORY_HOST); index = 0; for (i = 0; i < num_sends; i++) { start = hypre_ParCSRCommPkgSendMapStart(comm_pkg, i); for (j = start; j < hypre_ParCSRCommPkgSendMapStart(comm_pkg, i + 1); j++) + { int_buf_data[index++] = CF_marker[hypre_ParCSRCommPkgSendMapElmt(comm_pkg, j)]; + } } - comm_handle = hypre_ParCSRCommHandleCreate( 11, comm_pkg, int_buf_data, - CF_marker_offd); + comm_handle = hypre_ParCSRCommHandleCreate(11, comm_pkg, int_buf_data, CF_marker_offd); hypre_ParCSRCommHandleDestroy(comm_handle); hypre_TFree(int_buf_data, HYPRE_MEMORY_HOST); @@ -754,10 +754,9 @@ hypre_BoomerAMGCreateSFromCFMarker(hypre_ParCSRMatrix *A, /* give S same nonzero structure as A */ #ifdef HYPRE_USING_OPENMP - #pragma omp parallel private(i,diag,row_scale,row_sum,jA,jS) + #pragma omp parallel private(i,diag,row_scale,row_sum,jA,jS,start,stop) #endif { - HYPRE_Int start, stop; hypre_GetSimpleThreadPartition(&start, &stop, num_variables); HYPRE_Int jS_diag = 0, jS_offd = 0; @@ -2000,12 +1999,12 @@ hypre_BoomerAMGCreate2ndSHost( hypre_ParCSRMatrix *S, S_int_i[0] = 0; num_nonzeros = 0; #ifdef HYPRE_USING_OPENMP - #pragma omp parallel for private(j,k) reduction(+:num_nonzeros) HYPRE_SMP_SCHEDULE + #pragma omp parallel for private(j,k,jrow,index) reduction(+:num_nonzeros) HYPRE_SMP_SCHEDULE #endif for (j = begin; j < end; j++) { - HYPRE_Int jrow = send_map_elmts[j]; - HYPRE_Int index = 0; + jrow = send_map_elmts[j]; + index = 0; for (k = S_diag_i[jrow]; k < S_diag_i[jrow + 1]; k++) { if (CF_marker[S_diag_j[k]] > 0) { index++; } @@ -2026,10 +2025,10 @@ hypre_BoomerAMGCreate2ndSHost( hypre_ParCSRMatrix *S, comm_handle = hypre_ParCSRCommHandleCreate(11, comm_pkg, &S_int_i[1], &S_ext_i[1]); } - if (num_nonzeros) { S_int_j = hypre_TAlloc(HYPRE_BigInt, num_nonzeros, HYPRE_MEMORY_HOST); } + S_int_j = hypre_TAlloc(HYPRE_BigInt, num_nonzeros, HYPRE_MEMORY_HOST); - tmp_send_map_starts = hypre_CTAlloc(HYPRE_Int, num_sends + 1, HYPRE_MEMORY_HOST); - tmp_recv_vec_starts = hypre_CTAlloc(HYPRE_Int, num_recvs + 1, HYPRE_MEMORY_HOST); + tmp_send_map_starts = hypre_CTAlloc(HYPRE_Int, num_sends + 1, HYPRE_MEMORY_HOST); + tmp_recv_vec_starts = hypre_CTAlloc(HYPRE_Int, num_recvs + 1, HYPRE_MEMORY_HOST); tmp_send_map_starts[0] = 0; j_cnt = 0; @@ -2082,11 +2081,7 @@ hypre_BoomerAMGCreate2ndSHost( hypre_ParCSRMatrix *S, num_nonzeros = S_ext_i[recv_vec_starts[num_recvs]]; - if (num_nonzeros) - { - S_ext_j = hypre_TAlloc(HYPRE_BigInt, num_nonzeros, HYPRE_MEMORY_HOST); - } - + S_ext_j = hypre_TAlloc(HYPRE_BigInt, num_nonzeros, HYPRE_MEMORY_HOST); for (i = 0; i < num_recvs; i++) { tmp_recv_vec_starts[i + 1] = S_ext_i[recv_vec_starts[i + 1]]; @@ -2115,7 +2110,8 @@ hypre_BoomerAMGCreate2ndSHost( hypre_ParCSRMatrix *S, S_ext_offd_i[0] = 0; hypre_UnorderedBigIntSet found_set; - hypre_UnorderedBigIntSetCreate(&found_set, S_ext_i[num_cols_offd_S] + num_cols_offd_S, + hypre_UnorderedBigIntSetCreate(&found_set, + S_ext_i[num_cols_offd_S] + num_cols_offd_S, 16 * hypre_NumThreads()); #pragma omp parallel private(i,j, big_i1) @@ -2319,13 +2315,13 @@ hypre_BoomerAMGCreate2ndSHost( hypre_ParCSRMatrix *S, map_S_to_C = hypre_TAlloc(HYPRE_Int, num_cols_offd_S, HYPRE_MEMORY_HOST); #ifdef HYPRE_USING_OPENMP - #pragma omp parallel private(i) + #pragma omp parallel private(i, cnt) #endif { HYPRE_Int i_begin, i_end; hypre_GetSimpleThreadPartition(&i_begin, &i_end, num_cols_offd_S); - HYPRE_BigInt cnt = 0; + cnt = 0; for (i = i_begin; i < i_end; i++) { if (CF_marker_offd[i] > 0) @@ -2377,7 +2373,7 @@ hypre_BoomerAMGCreate2ndSHost( hypre_ParCSRMatrix *S, *-----------------------------------------------------------------------*/ #ifdef HYPRE_USING_OPENMP - #pragma omp parallel private(i1,i2,i3,jj1,jj2,index) + #pragma omp parallel private(i1,i2,i3,jj1,jj2,index,S_marker,S_marker_offd) #endif { HYPRE_Int my_thread_num = hypre_GetThreadNum(); @@ -2397,7 +2393,8 @@ hypre_BoomerAMGCreate2ndSHost( hypre_ParCSRMatrix *S, C_temp_offd_data = C_temp_offd_data_array + num_cols_offd_C * my_thread_num; } - HYPRE_Int *S_marker = NULL, *S_marker_offd = NULL; + S_marker = NULL; + S_marker_offd = NULL; if (num_coarse) { S_marker = S_marker_array + num_coarse * my_thread_num; } if (num_cols_offd_C) { S_marker_offd = S_marker_offd_array + num_cols_offd_C * my_thread_num; } for (i1 = 0; i1 < num_coarse; i1++) diff --git a/src/parcsr_ls/par_sv_interp.c b/src/parcsr_ls/par_sv_interp.c index 50759176e4..8441108798 100644 --- a/src/parcsr_ls/par_sv_interp.c +++ b/src/parcsr_ls/par_sv_interp.c @@ -1446,9 +1446,9 @@ hypre_BoomerAMG_GMExpandInterp( hypre_ParCSRMatrix *A, if (num_procs > 1) { HYPRE_Int count; - HYPRE_Int num_cols_P_offd = 0; HYPRE_Int P_offd_new_size = P_offd_i_new[num_rows_P]; + num_cols_P_offd = 0; if (P_offd_new_size) { diff --git a/src/parcsr_ls/par_sv_interp_ln.c b/src/parcsr_ls/par_sv_interp_ln.c index 336fd2e2ba..6cc315bede 100644 --- a/src/parcsr_ls/par_sv_interp_ln.c +++ b/src/parcsr_ls/par_sv_interp_ln.c @@ -2522,12 +2522,11 @@ HYPRE_Int hypre_BoomerAMG_LNExpandInterp( hypre_ParCSRMatrix *A, if (num_procs > 1) { HYPRE_Int count; - HYPRE_Int num_cols_P_offd = 0; HYPRE_Int P_offd_new_size = P_offd_i_new[num_rows_P]; + num_cols_P_offd = 0; if (P_offd_new_size) { - HYPRE_BigInt *j_copy; /* check this */ From cc3c9da22b6439ee5eaeb631741542fc89287c42 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Wed, 11 Sep 2024 21:41:35 -0400 Subject: [PATCH 2/9] Fix shadow warnings at seq_mv --- src/seq_mv/csr_matop.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/seq_mv/csr_matop.c b/src/seq_mv/csr_matop.c index cbedfb8c2c..c74d0a710b 100644 --- a/src/seq_mv/csr_matop.c +++ b/src/seq_mv/csr_matop.c @@ -1062,7 +1062,7 @@ hypre_CSRMatrixTransposeHost(hypre_CSRMatrix *A, HYPRE_Int num_nnzs_AT; HYPRE_Int max_col; - HYPRE_Int i, j; + HYPRE_Int iA, jA; /*-------------------------------------------------------------- * First, ascertain that num_cols and num_nonzeros has been set. @@ -1078,13 +1078,13 @@ hypre_CSRMatrixTransposeHost(hypre_CSRMatrix *A, if (num_rows_A && num_nnzs_A && ! num_cols_A) { max_col = -1; - for (i = 0; i < num_rows_A; ++i) + for (iA = 0; iA < num_rows_A; ++iA) { - for (j = A_i[i]; j < A_i[i + 1]; j++) + for (jA = A_i[iA]; jA < A_i[iA + 1]; jA++) { - if (A_j[j] > max_col) + if (A_j[jA] > max_col) { - max_col = A_j[j]; + max_col = A_j[jA]; } } } From ca2e608c775ca6d9e54900744f49ba371d6b04ff Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Wed, 11 Sep 2024 21:42:14 -0400 Subject: [PATCH 3/9] Fix shadow warnings at IJ_mv --- src/IJ_mv/IJMatrix_parcsr.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/IJ_mv/IJMatrix_parcsr.c b/src/IJ_mv/IJMatrix_parcsr.c index 49f84172e5..825238aa49 100644 --- a/src/IJ_mv/IJMatrix_parcsr.c +++ b/src/IJ_mv/IJMatrix_parcsr.c @@ -2348,7 +2348,6 @@ hypre_IJMatrixAssembleOffProcValsParCSR( hypre_IJMatrix *matrix, HYPRE_MEMORY_HOST); } - HYPRE_Int i; for (i = 0; i < num_elements; i++) { off_proc_i_recv[off_proc_nelm_recv_cur + i] = row; From 86a50d794bcbf82d69339626c0707ce4174781dd Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Wed, 11 Sep 2024 21:44:07 -0400 Subject: [PATCH 4/9] Fix shadow warnings at parcsr_mv --- src/parcsr_mv/par_csr_matop.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/parcsr_mv/par_csr_matop.c b/src/parcsr_mv/par_csr_matop.c index 4cae93eaac..ed7714538f 100644 --- a/src/parcsr_mv/par_csr_matop.c +++ b/src/parcsr_mv/par_csr_matop.c @@ -68,13 +68,13 @@ hypre_ParMatmul_RowSizes( HYPRE_MemoryLocation memory_location, HYPRE_Int *jj_count_offd_array; HYPRE_Int start_indexing = 0; /* start indexing for C_data at 0 */ - HYPRE_Int num_threads = hypre_NumThreads(); + HYPRE_Int max_num_threads = hypre_NumThreads(); *C_diag_i = hypre_CTAlloc(HYPRE_Int, num_rows_diag_A + 1, memory_location); *C_offd_i = hypre_CTAlloc(HYPRE_Int, num_rows_diag_A + 1, memory_location); - jj_count_diag_array = hypre_CTAlloc(HYPRE_Int, num_threads, HYPRE_MEMORY_HOST); - jj_count_offd_array = hypre_CTAlloc(HYPRE_Int, num_threads, HYPRE_MEMORY_HOST); + jj_count_diag_array = hypre_CTAlloc(HYPRE_Int, max_num_threads, HYPRE_MEMORY_HOST); + jj_count_offd_array = hypre_CTAlloc(HYPRE_Int, max_num_threads, HYPRE_MEMORY_HOST); /*----------------------------------------------------------------------- * Loop over rows of A @@ -4506,7 +4506,6 @@ hypre_ParcsrBdiagInvScal( hypre_ParCSRMatrix *A, for (block_start = first_row_block; block_start < end_row_block; block_start += (HYPRE_BigInt)blockSize) { - HYPRE_BigInt big_i; block_end = hypre_min(block_start + (HYPRE_BigInt)blockSize, nrow_global); s = (HYPRE_Int)(block_end - block_start); From 8b8780ada5e897bc36c046b7d111bd2f0878d2da Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Wed, 22 Oct 2025 00:47:10 -0400 Subject: [PATCH 5/9] Fix various shadow warnings --- src/distributed_ls/Euclid/Mat_dh.c | 26 +++++++++---------- src/distributed_ls/Euclid/SubdomainGraph_dh.c | 4 +-- src/distributed_ls/Euclid/Vec_dh.c | 4 +-- src/parcsr_ls/par_amg_setup.c | 4 +-- src/utilities/merge_sort.c | 8 +++--- 5 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src/distributed_ls/Euclid/Mat_dh.c b/src/distributed_ls/Euclid/Mat_dh.c index 453493e5dc..4d9395886e 100644 --- a/src/distributed_ls/Euclid/Mat_dh.c +++ b/src/distributed_ls/Euclid/Mat_dh.c @@ -742,23 +742,23 @@ void Mat_dhPrintRows(Mat_dh A, SubdomainGraph_dh sg, FILE *fp) hypre_fprintf(fp, " 1st bdry row= %i \n", 1+end_row-sg->bdry_count[oldBlock]); for (oldRow=beg_row; oldRowo2n_col[cval[k]]); + hypre_fprintf(fp, "%i ", 1+sg->o2n_col[lcval[k]]); } else { - hypre_fprintf(fp, "%i,%g ; ", 1+sg->o2n_col[cval[k]], aval[k]); + hypre_fprintf(fp, "%i,%g ; ", 1+sg->o2n_col[lcval[k]], laval[k]); } } hypre_fprintf(fp, "\n"); - Mat_dhRestoreRow(A, oldRow, &len, &cval, &aval); CHECK_V_ERROR; + Mat_dhRestoreRow(A, oldRow, &len, &lcval, &laval); CHECK_V_ERROR; } } } @@ -873,28 +873,28 @@ void Mat_dhPrintTriples(Mat_dh A, SubdomainGraph_dh sg, char *filename) HYPRE_Int end_row = beg_row + sg->row_count[oldBlock]; for (j=beg_row; jn2o_row[j]; - Mat_dhGetRow(A, oldRow, &len, &cval, &aval); CHECK_V_ERROR; + Mat_dhGetRow(A, oldRow, &len, &lcval, &laval); CHECK_V_ERROR; if (noValues) { for (k=0; ko2n_col[cval[k]]); + hypre_fprintf(fp, "%i %i\n", idx, 1+sg->o2n_col[lcval[k]]); } ++idx; } else { for (k=0; ko2n_col[cval[k]], val); + hypre_fprintf(fp, TRIPLES_FORMAT, idx, 1+sg->o2n_col[lcval[k]], val); } ++idx; } - Mat_dhRestoreRow(A, oldRow, &len, &cval, &aval); CHECK_V_ERROR; + Mat_dhRestoreRow(A, oldRow, &len, &lcval, &laval); CHECK_V_ERROR; } } } diff --git a/src/distributed_ls/Euclid/SubdomainGraph_dh.c b/src/distributed_ls/Euclid/SubdomainGraph_dh.c index adcb7c7599..a5e77a2579 100644 --- a/src/distributed_ls/Euclid/SubdomainGraph_dh.c +++ b/src/distributed_ls/Euclid/SubdomainGraph_dh.c @@ -569,9 +569,9 @@ void init_mpi_private(SubdomainGraph_dh s, HYPRE_Int blocks, bool bj, void *A) /* bj setup */ else { HYPRE_Int *o2n = s->o2n_col, *n2o = s->n2o_row; - HYPRE_Int i, m = s->m; + HYPRE_Int i; - for (i=0; im; ++i) { o2n[i] = i; n2o[i] = i; } diff --git a/src/distributed_ls/Euclid/Vec_dh.c b/src/distributed_ls/Euclid/Vec_dh.c index df0c32b113..72da6b4136 100644 --- a/src/distributed_ls/Euclid/Vec_dh.c +++ b/src/distributed_ls/Euclid/Vec_dh.c @@ -115,7 +115,7 @@ void Vec_dhPrint(Vec_dh v, SubdomainGraph_dh sg, char *filename) { START_FUNC_DH HYPRE_Real *vals = v->vals; - HYPRE_Int pe, i, m = v->n; + HYPRE_Int pe, i, j, m = v->n; FILE *fp; if (v->vals == NULL) SET_V_ERROR("v->vals is NULL"); @@ -144,8 +144,6 @@ void Vec_dhPrint(Vec_dh v, SubdomainGraph_dh sg, char *filename) * case 2: single mpi task, multiple subdomains *--------------------------------------------------------*/ else if (np_dh == 1) { - HYPRE_Int i, j; - fp=openFile_dh(filename, "w"); CHECK_V_ERROR; for (i=0; iblocks; ++i) { diff --git a/src/parcsr_ls/par_amg_setup.c b/src/parcsr_ls/par_amg_setup.c index 8f33a15fce..21ce8a6c56 100644 --- a/src/parcsr_ls/par_amg_setup.c +++ b/src/parcsr_ls/par_amg_setup.c @@ -2497,8 +2497,8 @@ hypre_BoomerAMGSetup( void *amg_vdata, * coarsest solve to be a single sweep of Jacobi */ if ( (coarse_size == 0) || (coarse_size == fine_size) ) { - HYPRE_Int *num_grid_sweeps = hypre_ParAMGDataNumGridSweeps(amg_data); - HYPRE_Int **grid_relax_points = hypre_ParAMGDataGridRelaxPoints(amg_data); + num_grid_sweeps = hypre_ParAMGDataNumGridSweeps(amg_data); + grid_relax_points = hypre_ParAMGDataGridRelaxPoints(amg_data); if (grid_relax_type[3] == 9 || grid_relax_type[3] == 99 || grid_relax_type[3] == 19 || grid_relax_type[3] == 98) diff --git a/src/utilities/merge_sort.c b/src/utilities/merge_sort.c index e4445532e1..0940257610 100644 --- a/src/utilities/merge_sort.c +++ b/src/utilities/merge_sort.c @@ -626,9 +626,9 @@ void hypre_merge_sort( HYPRE_Int *in, HYPRE_Int *temp, HYPRE_Int len, HYPRE_Int num_threads_in_group, id_in_group); - HYPRE_Int *temp = in_buf; + HYPRE_Int *swap = in_buf; in_buf = out_buf; - out_buf = temp; + out_buf = swap; } *out = in_buf; @@ -788,9 +788,9 @@ void hypre_big_merge_sort(HYPRE_BigInt *in, HYPRE_BigInt *temp, HYPRE_Int len, num_threads_in_group, id_in_group); - HYPRE_BigInt *temp = in_buf; + HYPRE_BigInt *swap = in_buf; in_buf = out_buf; - out_buf = temp; + out_buf = swap; } *out = in_buf; From 2310dd047bfa8239eeb0b6af946d22f4bfe6d863 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Fri, 21 Nov 2025 20:42:59 -0500 Subject: [PATCH 6/9] Fix additional warnings --- src/parcsr_ls/par_fsai_setup.c | 2 +- src/parcsr_ls/par_strength.c | 2 +- src/utilities/mpistubs.c | 36 ++++++++++++++++++++-------------- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/parcsr_ls/par_fsai_setup.c b/src/parcsr_ls/par_fsai_setup.c index f4ebf41b58..19b283f978 100644 --- a/src/parcsr_ls/par_fsai_setup.c +++ b/src/parcsr_ls/par_fsai_setup.c @@ -712,7 +712,7 @@ hypre_FSAISetupOMPDyn( void *fsai_vdata, HYPRE_Int max_nnzrow_diag_G; /* Max. number of nonzeros per row in G_diag */ /* Local variables */ - HYPRE_Int i, j, jj; + HYPRE_Int iG, jG, jjG; char msg[512]; /* Warning message */ HYPRE_Complex *twspace; /* shared work space for omp threads */ diff --git a/src/parcsr_ls/par_strength.c b/src/parcsr_ls/par_strength.c index 2023cad1e6..f41935384f 100644 --- a/src/parcsr_ls/par_strength.c +++ b/src/parcsr_ls/par_strength.c @@ -618,7 +618,7 @@ hypre_BoomerAMGCreateSFromCFMarker(hypre_ParCSRMatrix *A, HYPRE_Real diag, row_scale, row_sum; HYPRE_Int i, jj, jA, jS; - HYPRE_Int num_sends, start, j, index; + HYPRE_Int num_sends, start, stop, j, index; HYPRE_Int *int_buf_data; HYPRE_Int ierr = 0; diff --git a/src/utilities/mpistubs.c b/src/utilities/mpistubs.c index 50e2a288f8..776bd3e6d7 100644 --- a/src/utilities/mpistubs.c +++ b/src/utilities/mpistubs.c @@ -8,28 +8,17 @@ #include "_hypre_utilities.h" /****************************************************************************** - * This routine is the same in both the sequential and normal cases - * - * The 'comm' argument for MPI_Comm_f2c is MPI_Fint, which is always the size of - * a Fortran integer and hence usually the size of hypre_int. - ****************************************************************************/ + * MPI stubs to generate serial codes without mpi + *****************************************************************************/ + +#if defined(HYPRE_SEQUENTIAL) hypre_MPI_Comm hypre_MPI_Comm_f2c( hypre_int comm ) { -#ifdef HYPRE_HAVE_MPI_COMM_F2C - return (hypre_MPI_Comm) MPI_Comm_f2c(comm); -#else return (hypre_MPI_Comm) (size_t)comm; -#endif } -/****************************************************************************** - * MPI stubs to generate serial codes without mpi - *****************************************************************************/ - -#if defined(HYPRE_SEQUENTIAL) - HYPRE_Int hypre_MPI_Init( hypre_int *argc, char ***argv ) @@ -933,6 +922,23 @@ hypre_MPI_CheckCommMatrix( hypre_MPI_Comm comm, #else +/****************************************************************************** + * This routine is the same in both the sequential and normal cases + * + * The 'comm' argument for MPI_Comm_f2c is MPI_Fint, which is always the size of + * a Fortran integer and hence usually the size of hypre_int. + ****************************************************************************/ + +hypre_MPI_Comm +hypre_MPI_Comm_f2c( hypre_int comm ) +{ +#ifdef HYPRE_HAVE_MPI_COMM_F2C + return (hypre_MPI_Comm) MPI_Comm_f2c(comm); +#else + return (hypre_MPI_Comm) (size_t)comm; +#endif +} + HYPRE_Int hypre_MPI_Init( hypre_int *argc, char ***argv ) From 48b9f5a78488e968873f01662d61de36cfadd48c Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Wed, 3 Dec 2025 00:08:19 -0500 Subject: [PATCH 7/9] Fix remaining warnings --- src/parcsr_ls/par_strength.c | 1 + src/sstruct_ls/node_relax.c | 48 ++++++------ src/sstruct_mv/HYPRE_sstruct_graph.c | 40 +++++----- src/sstruct_mv/sstruct_grid.c | 10 +-- src/struct_ls/semi_interp.c | 8 +- src/struct_ls/semi_restrict.c | 8 +- src/struct_mv/_hypre_struct_mv.h | 110 +++++++++++++++++---------- src/struct_mv/box.h | 10 +-- src/struct_mv/box_manager.c | 26 +++---- src/struct_mv/boxloop_host.h | 100 +++++++++++++++--------- src/struct_mv/struct_matrix.c | 8 +- src/utilities/_hypre_utilities.h | 101 ++++++++++++------------ src/utilities/gselim.h | 101 ++++++++++++------------ 13 files changed, 313 insertions(+), 258 deletions(-) diff --git a/src/parcsr_ls/par_strength.c b/src/parcsr_ls/par_strength.c index f41935384f..aafc30bf1b 100644 --- a/src/parcsr_ls/par_strength.c +++ b/src/parcsr_ls/par_strength.c @@ -673,6 +673,7 @@ hypre_BoomerAMGCreateSFromCFMarker(hypre_ParCSRMatrix *A, S_temp_offd_j = hypre_CSRMatrixJ(S_offd); HYPRE_BigInt *col_map_offd_S = hypre_TAlloc(HYPRE_BigInt, num_cols_offd, HYPRE_MEMORY_HOST); hypre_ParCSRMatrixColMapOffd(S) = col_map_offd_S; + HYPRE_BigInt *col_map_offd_A = hypre_ParCSRMatrixColMapOffd(A); if (num_functions > 1) { dof_func_offd = hypre_CTAlloc(HYPRE_Int, num_cols_offd, HYPRE_MEMORY_HOST); diff --git a/src/sstruct_ls/node_relax.c b/src/sstruct_ls/node_relax.c index 1c9ef10968..b95890f184 100644 --- a/src/sstruct_ls/node_relax.c +++ b/src/sstruct_ls/node_relax.c @@ -695,7 +695,7 @@ hypre_NodeRelax( void *relax_vdata, b_data_box, start, stride, bi, x_data_box, start, stride, xi); { - HYPRE_Int vi, vj; + HYPRE_Int vi_local, vj_local; HYPRE_Real A_loc[HYPRE_MAXVARS * HYPRE_MAXVARS] = {0}; HYPRE_Real x_loc[HYPRE_MAXVARS] = {0}; @@ -704,14 +704,14 @@ hypre_NodeRelax( void *relax_vdata, * (intra-nodal) into local storage. *----------------------------------------------*/ - for (vi = 0; vi < nvars; vi++) + for (vi_local = 0; vi_local < nvars; vi_local++) { - HYPRE_Real *bpi = bp[vi]; - x_loc[vi] = bpi[bi]; - for (vj = 0; vj < nvars; vj++) + HYPRE_Real *bpi = bp[vi_local]; + x_loc[vi_local] = bpi[bi]; + for (vj_local = 0; vj_local < nvars; vj_local++) { - HYPRE_Real *Apij = Ap[vi * nvars + vj]; - A_loc[vi * nvars + vj] = Apij ? Apij[Ai] : 0.0; + HYPRE_Real *Apij = Ap[vi_local * nvars + vj_local]; + A_loc[vi_local * nvars + vj_local] = Apij ? Apij[Ai] : 0.0; } } @@ -723,10 +723,10 @@ hypre_NodeRelax( void *relax_vdata, /*------------------------------------------------ * Copy solution from local storage. *----------------------------------------------*/ - for (vi = 0; vi < nvars; vi++) + for (vi_local = 0; vi_local < nvars; vi_local++) { - HYPRE_Real *xpi = xp[vi]; - xpi[xi] = x_loc[vi]; + HYPRE_Real *xpi = xp[vi_local]; + xpi[xi] = x_loc[vi_local]; } } hypre_BoxLoop3End(Ai, bi, xi); @@ -822,12 +822,12 @@ hypre_NodeRelax( void *relax_vdata, b_data_box, start, stride, bi, t_data_box, start, stride, ti); { - HYPRE_Int vi; + HYPRE_Int vi_local; /* Copy rhs into temp vector */ - for (vi = 0; vi < nvars; vi++) + for (vi_local = 0; vi_local < nvars; vi_local++) { - HYPRE_Real *tpi = tp[vi]; - HYPRE_Real *bpi = bp[vi]; + HYPRE_Real *tpi = tp[vi_local]; + HYPRE_Real *bpi = bp[vi_local]; tpi[ti] = bpi[bi]; } } @@ -901,7 +901,7 @@ hypre_NodeRelax( void *relax_vdata, A_data_box, start, stride, Ai, t_data_box, start, stride, ti); { - HYPRE_Int vi, vj; + HYPRE_Int vi_local, vj_local; /* HYPRE_Real *A_loc = tA_loc + hypre_BoxLoopBlock() * nvars * nvars; HYPRE_Real *x_loc = tx_loc + hypre_BoxLoopBlock() * nvars; @@ -913,14 +913,14 @@ hypre_NodeRelax( void *relax_vdata, * Copy rhs and matrix for diagonal coupling * (intra-nodal) into local storage. *----------------------------------------------*/ - for (vi = 0; vi < nvars; vi++) + for (vi_local = 0; vi_local < nvars; vi_local++) { - HYPRE_Real *tpi = tp[vi]; - x_loc[vi] = tpi[ti]; - for (vj = 0; vj < nvars; vj++) + HYPRE_Real *tpi = tp[vi_local]; + x_loc[vi_local] = tpi[ti]; + for (vj_local = 0; vj_local < nvars; vj_local++) { - HYPRE_Real *Apij = Ap[vi * nvars + vj]; - A_loc[vi * nvars + vj] = Apij ? Apij[Ai] : 0.0; + HYPRE_Real *Apij = Ap[vi_local * nvars + vj_local]; + A_loc[vi_local * nvars + vj_local] = Apij ? Apij[Ai] : 0.0; } } @@ -932,10 +932,10 @@ hypre_NodeRelax( void *relax_vdata, /*------------------------------------------------ * Copy solution from local storage. *----------------------------------------------*/ - for (vi = 0; vi < nvars; vi++) + for (vi_local = 0; vi_local < nvars; vi_local++) { - HYPRE_Real *tpi = tp[vi]; - tpi[ti] = x_loc[vi]; + HYPRE_Real *tpi = tp[vi_local]; + tpi[ti] = x_loc[vi_local]; } } diff --git a/src/sstruct_mv/HYPRE_sstruct_graph.c b/src/sstruct_mv/HYPRE_sstruct_graph.c index 47c31f7fdf..8dee2331a3 100644 --- a/src/sstruct_mv/HYPRE_sstruct_graph.c +++ b/src/sstruct_mv/HYPRE_sstruct_graph.c @@ -856,13 +856,13 @@ HYPRE_SStructGraphAssemble( HYPRE_SStructGraph graph ) HYPRE_Int *fem_vars = hypre_SStructGridFEMPVars(grid, part); hypre_Index *fem_offsets = hypre_SStructGridFEMPOffsets(grid, part); hypre_Index offset; - HYPRE_Int s, iv, jv, d, nvars, entry; + HYPRE_Int s, iv, jv, d_local, nvars_local, entry_local; HYPRE_Int *stencil_sizes; hypre_Index **stencil_offsets; HYPRE_Int **stencil_vars; pgrid = hypre_SStructGridPGrid(grid, part); - nvars = hypre_SStructPGridNVars(pgrid); + nvars_local = hypre_SStructPGridNVars(pgrid); /* build default full sparsity pattern if nothing set by user */ if (fem_nsparse < 0) @@ -888,10 +888,10 @@ HYPRE_SStructGraphAssemble( HYPRE_SStructGraph graph ) fem_entries = hypre_CTAlloc(HYPRE_Int, fem_nsparse, HYPRE_MEMORY_HOST); hypre_SStructGraphFEMPEntries(graph, part) = fem_entries; - stencil_sizes = hypre_CTAlloc(HYPRE_Int, nvars, HYPRE_MEMORY_HOST); - stencil_offsets = hypre_CTAlloc(hypre_Index *, nvars, HYPRE_MEMORY_HOST); - stencil_vars = hypre_CTAlloc(HYPRE_Int *, nvars, HYPRE_MEMORY_HOST); - for (iv = 0; iv < nvars; iv++) + stencil_sizes = hypre_CTAlloc(HYPRE_Int, nvars_local, HYPRE_MEMORY_HOST); + stencil_offsets = hypre_CTAlloc(hypre_Index *, nvars_local, HYPRE_MEMORY_HOST); + stencil_vars = hypre_CTAlloc(HYPRE_Int *, nvars_local, HYPRE_MEMORY_HOST); + for (iv = 0; iv < nvars_local; iv++) { stencil_offsets[iv] = hypre_CTAlloc(hypre_Index, fem_nvars * fem_nvars, HYPRE_MEMORY_HOST); stencil_vars[iv] = hypre_CTAlloc(HYPRE_Int, fem_nvars * fem_nvars, HYPRE_MEMORY_HOST); @@ -905,33 +905,33 @@ HYPRE_SStructGraphAssemble( HYPRE_SStructGraph graph ) jv = fem_vars[j]; /* shift off-diagonal offset by diagonal */ - for (d = 0; d < ndim; d++) + for (d_local = 0; d_local < ndim; d_local++) { - offset[d] = fem_offsets[j][d] - fem_offsets[i][d]; + offset[d_local] = fem_offsets[j][d_local] - fem_offsets[i][d_local]; } /* search stencil_offsets */ - for (entry = 0; entry < stencil_sizes[iv]; entry++) + for (entry_local = 0; entry_local < stencil_sizes[iv]; entry_local++) { /* if offset is already in the stencil, break */ - if ( hypre_IndexesEqual(offset, stencil_offsets[iv][entry], ndim) - && (jv == stencil_vars[iv][entry]) ) + if ( hypre_IndexesEqual(offset, stencil_offsets[iv][entry_local], ndim) + && (jv == stencil_vars[iv][entry_local]) ) { break; } } /* if this is a new stencil offset, add it to the stencil */ - if (entry == stencil_sizes[iv]) + if (entry_local == stencil_sizes[iv]) { - for (d = 0; d < ndim; d++) + for (d_local = 0; d_local < ndim; d_local++) { - stencil_offsets[iv][entry][d] = offset[d]; + stencil_offsets[iv][entry_local][d_local] = offset[d_local]; } - stencil_vars[iv][entry] = jv; + stencil_vars[iv][entry_local] = jv; stencil_sizes[iv]++; } - fem_entries[s] = entry; + fem_entries[s] = entry_local; } /* set up the stencils */ @@ -940,11 +940,11 @@ HYPRE_SStructGraphAssemble( HYPRE_SStructGraph graph ) HYPRE_SStructStencilDestroy(stencils[part][iv]); HYPRE_SStructStencilCreate(ndim, stencil_sizes[iv], &stencils[part][iv]); - for (entry = 0; entry < stencil_sizes[iv]; entry++) + for (entry_local = 0; entry_local < stencil_sizes[iv]; entry_local++) { - HYPRE_SStructStencilSetEntry(stencils[part][iv], entry, - stencil_offsets[iv][entry], - stencil_vars[iv][entry]); + HYPRE_SStructStencilSetEntry(stencils[part][iv], entry_local, + stencil_offsets[iv][entry_local], + stencil_vars[iv][entry_local]); } } diff --git a/src/sstruct_mv/sstruct_grid.c b/src/sstruct_mv/sstruct_grid.c index 2fc4b5f9d1..07b8f83a7e 100644 --- a/src/sstruct_mv/sstruct_grid.c +++ b/src/sstruct_mv/sstruct_grid.c @@ -764,7 +764,7 @@ hypre_SStructGridAssembleBoxManagers( hypre_SStructGrid *grid ) intersected box into the Box Manager */ hypre_SStructNeighbor *vneighbor; - HYPRE_Int b, i; + HYPRE_Int b_local, i; hypre_Box *vbox; HYPRE_Int **nvneighbors = hypre_SStructGridNVNeighbors(grid); hypre_SStructNeighbor ***vneighbors = hypre_SStructGridVNeighbors(grid); @@ -806,9 +806,9 @@ hypre_SStructGridAssembleBoxManagers( hypre_SStructGrid *grid ) hypre_BoxGrowByIndex(grow_box, max_distance); /* loop through neighbors */ - for (b = 0; b < nvneighbors[part][var]; b++) + for (b_local = 0; b_local < nvneighbors[part][var]; b_local++) { - vneighbor = &vneighbors[part][var][b]; + vneighbor = &vneighbors[part][var][b_local]; vbox = hypre_SStructNeighborBox(vneighbor); /* grow neighbor box by 1 to account for shared parts */ @@ -942,9 +942,9 @@ hypre_SStructGridAssembleNborBoxManagers( hypre_SStructGrid *grid ) hypre_CopyToCleanIndex( hypre_BoxIMin(bounding_box), ndim, min_index); hypre_CopyToCleanIndex( hypre_BoxIMax(bounding_box), ndim, max_index); - for (b = 0; b < nvneighbors[part][var]; b++) + for (b_local = 0; b_local < nvneighbors[part][var]; b_local++) { - vneighbor = &vneighbors[part][var][b]; + vneighbor = &vneighbors[part][var][b_local]; vbox = hypre_SStructNeighborBox(vneighbor); /* find min and max box extents */ for (d = 0; d < ndim; d++) diff --git a/src/struct_ls/semi_interp.c b/src/struct_ls/semi_interp.c index efed42b3f9..3c6a7fbbc0 100644 --- a/src/struct_ls/semi_interp.c +++ b/src/struct_ls/semi_interp.c @@ -131,7 +131,7 @@ hypre_SemiInterp( void *interp_vdata, hypre_Box *xc_dbox; hypre_Box *e_dbox; - HYPRE_Int Pi; + HYPRE_Int Pi_outer; HYPRE_Int constant_coefficient; HYPRE_Real *Pp0, *Pp1; @@ -306,9 +306,9 @@ hypre_SemiInterp( void *interp_vdata, if ( constant_coefficient ) { HYPRE_Complex Pp0val, Pp1val; - Pi = hypre_CCBoxIndexRank( P_dbox, startc ); - Pp0val = Pp0[Pi]; - Pp1val = Pp1[Pi + Pp1_offset]; + Pi_outer = hypre_CCBoxIndexRank( P_dbox, startc ); + Pp0val = Pp0[Pi_outer]; + Pp1val = Pp1[Pi_outer + Pp1_offset]; #define DEVICE_VAR is_device_ptr(ep) hypre_BoxLoop1Begin(hypre_StructMatrixNDim(P), loop_size, diff --git a/src/struct_ls/semi_restrict.c b/src/struct_ls/semi_restrict.c index 04d787f911..d365098269 100644 --- a/src/struct_ls/semi_restrict.c +++ b/src/struct_ls/semi_restrict.c @@ -129,7 +129,7 @@ hypre_SemiRestrict( void *restrict_vdata, hypre_Box *r_dbox; hypre_Box *rc_dbox; - HYPRE_Int Ri; + HYPRE_Int Ri_outer; HYPRE_Int constant_coefficient; HYPRE_Real *Rp0, *Rp1; @@ -273,10 +273,10 @@ hypre_SemiRestrict( void *restrict_vdata, if ( constant_coefficient ) { HYPRE_Complex Rp0val, Rp1val; - Ri = hypre_CCBoxIndexRank( R_dbox, startc ); + Ri_outer = hypre_CCBoxIndexRank( R_dbox, startc ); - Rp0val = Rp0[Ri + Rp0_offset]; - Rp1val = Rp1[Ri]; + Rp0val = Rp0[Ri_outer + Rp0_offset]; + Rp1val = Rp1[Ri_outer]; #define DEVICE_VAR is_device_ptr(rcp,rp) hypre_BoxLoop2Begin(hypre_StructMatrixNDim(R), loop_size, r_dbox, start, stride, ri, diff --git a/src/struct_mv/_hypre_struct_mv.h b/src/struct_mv/_hypre_struct_mv.h index 8afbbdbf1c..10c7a86fbc 100644 --- a/src/struct_mv/_hypre_struct_mv.h +++ b/src/struct_mv/_hypre_struct_mv.h @@ -141,13 +141,11 @@ hypre_max(0, (hypre_BoxIMaxD(box, d) - hypre_BoxIMinD(box, d) + 1)) hypre_IndexD(index, d) <= hypre_BoxIMaxD(box, d) ) #define hypre_BoxSpanIndex(box, index)\ {\ - HYPRE_Int d;\ - for (d = 0; d < hypre_BoxNDim(box); d++)\ + HYPRE_Int __d;\ + for (__d = 0; __d < hypre_BoxNDim(box); __d++)\ {\ - hypre_BoxIMinD(box, d) =\ - hypre_min(hypre_BoxIMinD(box, d), hypre_IndexD(index, d));\ - hypre_BoxIMaxD(box, d) =\ - hypre_max(hypre_BoxIMaxD(box, d), hypre_IndexD(index, d));\ + hypre_BoxIMinD(box, __d) = hypre_min(hypre_BoxIMinD(box, __d), hypre_IndexD(index, __d));\ + hypre_BoxIMaxD(box, __d) = hypre_max(hypre_BoxIMaxD(box, __d), hypre_IndexD(index, __d));\ }\ } @@ -3283,17 +3281,18 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ #define zypre_BoxLoop1Begin(ndim, loop_size, \ dbox1, start1, stride1, i1) \ { \ - HYPRE_Int i1; \ + HYPRE_Int hypre_loop_i1; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + i1 = hypre_loop_i1; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3304,6 +3303,7 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ } \ zypre_BoxLoopInc1(); \ i1 += hypre__ikinc1[hypre__d]; \ + hypre_loop_i1 = i1; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -3314,20 +3314,22 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ dbox1, start1, stride1, i1, \ dbox2, start2, stride2, i2) \ { \ - HYPRE_Int i1, i2; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1, i2; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3340,6 +3342,8 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ zypre_BoxLoopInc1(); \ i1 += hypre__ikinc1[hypre__d]; \ i2 += hypre__ikinc2[hypre__d]; \ + hypre_loop_i1 = i1; \ + hypre_loop_i2 = i2; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -3351,23 +3355,26 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ dbox2, start2, stride2, i2, \ dbox3, start3, stride3, i3) \ { \ - HYPRE_Int i1, i2, i3; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2, hypre_loop_i3; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopDeclareK(3); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ - zypre_BoxLoopInitK(3, dbox3, start3, stride3, i3); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ + zypre_BoxLoopInitK(3, dbox3, start3, stride3, hypre_loop_i3); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1, i2, i3; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ - zypre_BoxLoopSetK(3, i3); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + zypre_BoxLoopSetK(3, hypre_loop_i3); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ + i3 = hypre_loop_i3; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3382,6 +3389,9 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ i1 += hypre__ikinc1[hypre__d]; \ i2 += hypre__ikinc2[hypre__d]; \ i3 += hypre__ikinc3[hypre__d]; \ + hypre_loop_i1 = i1; \ + hypre_loop_i2 = i2; \ + hypre_loop_i3 = i3; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -3393,26 +3403,30 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ dbox3, start3, stride3, i3, \ dbox4, start4, stride4, i4) \ { \ - HYPRE_Int i1, i2, i3, i4; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2, hypre_loop_i3, hypre_loop_i4; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopDeclareK(3); \ zypre_BoxLoopDeclareK(4); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ - zypre_BoxLoopInitK(3, dbox3, start3, stride3, i3); \ - zypre_BoxLoopInitK(4, dbox4, start4, stride4, i4); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ + zypre_BoxLoopInitK(3, dbox3, start3, stride3, hypre_loop_i3); \ + zypre_BoxLoopInitK(4, dbox4, start4, stride4, hypre_loop_i4); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1, i2, i3, i4; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ - zypre_BoxLoopSetK(3, i3); \ - zypre_BoxLoopSetK(4, i4); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + zypre_BoxLoopSetK(3, hypre_loop_i3); \ + zypre_BoxLoopSetK(4, hypre_loop_i4); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ + i3 = hypre_loop_i3; \ + i4 = hypre_loop_i4; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3429,6 +3443,10 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ i2 += hypre__ikinc2[hypre__d]; \ i3 += hypre__ikinc3[hypre__d]; \ i4 += hypre__ikinc4[hypre__d]; \ + hypre_loop_i1 = i1; \ + hypre_loop_i2 = i2; \ + hypre_loop_i3 = i3; \ + hypre_loop_i4 = i4; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -3437,6 +3455,7 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ #define zypre_BasicBoxLoop1Begin(ndim, loop_size, \ stride1, i1) \ { \ + HYPRE_Int hypre_loop_i1 = 0; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopInit(ndim, loop_size); \ @@ -3446,7 +3465,8 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ { \ HYPRE_Int i1; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + i1 = hypre_loop_i1; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3456,6 +3476,7 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ stride1, i1, \ stride2, i2) \ { \ + HYPRE_Int hypre_loop_i1 = 0, hypre_loop_i2 = 0; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ @@ -3467,8 +3488,10 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ { \ HYPRE_Int i1, i2; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3515,16 +3538,18 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ #define hypre_SerialBoxLoop1Begin(ndim, loop_size, \ dbox1, start1, stride1, i1) \ { \ - HYPRE_Int i1; \ + HYPRE_Int hypre_loop_i1; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ zypre_BoxLoopSetOneBlock(); \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ + HYPRE_Int i1; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + i1 = hypre_loop_i1; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3536,19 +3561,22 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ dbox1, start1, stride1, i1, \ dbox2, start2, stride2, i2) \ { \ - HYPRE_Int i1,i2; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ zypre_BoxLoopSetOneBlock(); \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ + HYPRE_Int i1, i2; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ diff --git a/src/struct_mv/box.h b/src/struct_mv/box.h index f681b646c5..54d29e163a 100644 --- a/src/struct_mv/box.h +++ b/src/struct_mv/box.h @@ -120,13 +120,11 @@ hypre_max(0, (hypre_BoxIMaxD(box, d) - hypre_BoxIMinD(box, d) + 1)) hypre_IndexD(index, d) <= hypre_BoxIMaxD(box, d) ) #define hypre_BoxSpanIndex(box, index)\ {\ - HYPRE_Int d;\ - for (d = 0; d < hypre_BoxNDim(box); d++)\ + HYPRE_Int __d;\ + for (__d = 0; __d < hypre_BoxNDim(box); __d++)\ {\ - hypre_BoxIMinD(box, d) =\ - hypre_min(hypre_BoxIMinD(box, d), hypre_IndexD(index, d));\ - hypre_BoxIMaxD(box, d) =\ - hypre_max(hypre_BoxIMaxD(box, d), hypre_IndexD(index, d));\ + hypre_BoxIMinD(box, __d) = hypre_min(hypre_BoxIMinD(box, __d), hypre_IndexD(index, __d));\ + hypre_BoxIMaxD(box, __d) = hypre_max(hypre_BoxIMaxD(box, __d), hypre_IndexD(index, __d));\ }\ } diff --git a/src/struct_mv/box_manager.c b/src/struct_mv/box_manager.c index 4daa75665a..5184a0e056 100644 --- a/src/struct_mv/box_manager.c +++ b/src/struct_mv/box_manager.c @@ -1258,7 +1258,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) HYPRE_Int statbuf[3]; HYPRE_Int send_statbuf[3]; - HYPRE_Int ndim = hypre_BoxManNDim(manager); + HYPRE_Int ndim_local = hypre_BoxManNDim(manager); void *entry_response_buf; void *index_ptr; @@ -1267,7 +1267,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) HYPRE_Real local_volume, global_volume; HYPRE_Real sendbuf2[2], recvbuf2[2]; - hypre_BoxArray *gather_regions; + hypre_BoxArray *gather_regions_local; hypre_BoxArray *local_boxes; hypre_Box *box; @@ -1291,7 +1291,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) /* create an array of local boxes. get the global box size/volume (as a HYPRE_Real). */ - local_boxes = hypre_BoxArrayCreate(num_my_entries, ndim); + local_boxes = hypre_BoxArrayCreate(num_my_entries, ndim_local); local_volume = 0.0; @@ -1335,7 +1335,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) gamma = .6; /* percentage a region must be full to avoid refinement */ hypre_StructAssumedPartitionCreate( - ndim, hypre_BoxManBoundingBox(manager), global_volume, global_num_boxes, + ndim_local, hypre_BoxManBoundingBox(manager), global_volume, global_num_boxes, local_boxes, max_regions, max_refinements, gamma, comm, &ap); hypre_BoxManAssumedPartition(manager) = ap; @@ -1357,28 +1357,28 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) * until more extensive testing is done. (RDF) */ /* if (global_num_boxes) */ { - gather_regions = hypre_BoxManGatherRegions(manager); + gather_regions_local = hypre_BoxManGatherRegions(manager); /* allocate space to store info from one box */ proc_count = 0; - proc_alloc = hypre_pow2(ndim); /* Just an initial estimate */ + proc_alloc = hypre_pow2(ndim_local); /* Just an initial estimate */ proc_array = hypre_CTAlloc(HYPRE_Int, proc_alloc, HYPRE_MEMORY_HOST); /* probably there will be one proc per box - allocate space for 2 */ - size = 2 * hypre_BoxArraySize(gather_regions); + size = 2 * hypre_BoxArraySize(gather_regions_local); tmp_proc_ids = hypre_CTAlloc(HYPRE_Int, size, HYPRE_MEMORY_HOST); count = 0; /* loop through all boxes */ - hypre_ForBoxI(i, gather_regions) + hypre_ForBoxI(i, gather_regions_local) { hypre_StructAssumedPartitionGetProcsFromBox( - ap, hypre_BoxArrayBox(gather_regions, i), + ap, hypre_BoxArrayBox(gather_regions_local, i), &proc_count, &proc_alloc, &proc_array); if ((count + proc_count) > size) { - size = size + proc_count + 2 * (hypre_BoxArraySize(gather_regions) - i); + size = size + proc_count + 2 * (hypre_BoxArraySize(gather_regions_local) - i); tmp_proc_ids = hypre_TReAlloc(tmp_proc_ids, HYPRE_Int, size, HYPRE_MEMORY_HOST); } for (j = 0; j < proc_count; j++) @@ -1627,7 +1627,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) Note: For now, we do not need to send num_ghost, position, or boxman, since this is just generated in addentry. */ - non_info_size = 2 * ndim + 2; + non_info_size = 2 * ndim_local + 2; entry_size_bytes = ((size_t) non_info_size) * sizeof(HYPRE_Int) + (size_t) hypre_BoxManEntryInfoSize(manager); @@ -1665,7 +1665,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) { size = sizeof(HYPRE_Int); /* imin */ - for (d = 0; d < ndim; d++) + for (d = 0; d < ndim_local; d++) { hypre_TMemcpy( &tmp_int, index_ptr, HYPRE_Int, 1, HYPRE_MEMORY_HOST, HYPRE_MEMORY_HOST); @@ -1674,7 +1674,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) } /* imax */ - for (d = 0; d < ndim; d++) + for (d = 0; d < ndim_local; d++) { hypre_TMemcpy( &tmp_int, index_ptr, HYPRE_Int, 1, HYPRE_MEMORY_HOST, HYPRE_MEMORY_HOST); diff --git a/src/struct_mv/boxloop_host.h b/src/struct_mv/boxloop_host.h index 4eb818d0ad..5e31009f06 100644 --- a/src/struct_mv/boxloop_host.h +++ b/src/struct_mv/boxloop_host.h @@ -61,17 +61,18 @@ #define zypre_BoxLoop1Begin(ndim, loop_size, \ dbox1, start1, stride1, i1) \ { \ - HYPRE_Int i1; \ + HYPRE_Int hypre_loop_i1; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + i1 = hypre_loop_i1; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -82,6 +83,7 @@ } \ zypre_BoxLoopInc1(); \ i1 += hypre__ikinc1[hypre__d]; \ + hypre_loop_i1 = i1; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -92,20 +94,22 @@ dbox1, start1, stride1, i1, \ dbox2, start2, stride2, i2) \ { \ - HYPRE_Int i1, i2; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1, i2; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -118,6 +122,8 @@ zypre_BoxLoopInc1(); \ i1 += hypre__ikinc1[hypre__d]; \ i2 += hypre__ikinc2[hypre__d]; \ + hypre_loop_i1 = i1; \ + hypre_loop_i2 = i2; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -129,23 +135,26 @@ dbox2, start2, stride2, i2, \ dbox3, start3, stride3, i3) \ { \ - HYPRE_Int i1, i2, i3; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2, hypre_loop_i3; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopDeclareK(3); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ - zypre_BoxLoopInitK(3, dbox3, start3, stride3, i3); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ + zypre_BoxLoopInitK(3, dbox3, start3, stride3, hypre_loop_i3); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1, i2, i3; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ - zypre_BoxLoopSetK(3, i3); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + zypre_BoxLoopSetK(3, hypre_loop_i3); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ + i3 = hypre_loop_i3; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -160,6 +169,9 @@ i1 += hypre__ikinc1[hypre__d]; \ i2 += hypre__ikinc2[hypre__d]; \ i3 += hypre__ikinc3[hypre__d]; \ + hypre_loop_i1 = i1; \ + hypre_loop_i2 = i2; \ + hypre_loop_i3 = i3; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -171,26 +183,30 @@ dbox3, start3, stride3, i3, \ dbox4, start4, stride4, i4) \ { \ - HYPRE_Int i1, i2, i3, i4; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2, hypre_loop_i3, hypre_loop_i4; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopDeclareK(3); \ zypre_BoxLoopDeclareK(4); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ - zypre_BoxLoopInitK(3, dbox3, start3, stride3, i3); \ - zypre_BoxLoopInitK(4, dbox4, start4, stride4, i4); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ + zypre_BoxLoopInitK(3, dbox3, start3, stride3, hypre_loop_i3); \ + zypre_BoxLoopInitK(4, dbox4, start4, stride4, hypre_loop_i4); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1, i2, i3, i4; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ - zypre_BoxLoopSetK(3, i3); \ - zypre_BoxLoopSetK(4, i4); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + zypre_BoxLoopSetK(3, hypre_loop_i3); \ + zypre_BoxLoopSetK(4, hypre_loop_i4); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ + i3 = hypre_loop_i3; \ + i4 = hypre_loop_i4; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -207,6 +223,10 @@ i2 += hypre__ikinc2[hypre__d]; \ i3 += hypre__ikinc3[hypre__d]; \ i4 += hypre__ikinc4[hypre__d]; \ + hypre_loop_i1 = i1; \ + hypre_loop_i2 = i2; \ + hypre_loop_i3 = i3; \ + hypre_loop_i4 = i4; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -215,6 +235,7 @@ #define zypre_BasicBoxLoop1Begin(ndim, loop_size, \ stride1, i1) \ { \ + HYPRE_Int hypre_loop_i1 = 0; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopInit(ndim, loop_size); \ @@ -224,7 +245,8 @@ { \ HYPRE_Int i1; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + i1 = hypre_loop_i1; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -234,6 +256,7 @@ stride1, i1, \ stride2, i2) \ { \ + HYPRE_Int hypre_loop_i1 = 0, hypre_loop_i2 = 0; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ @@ -245,8 +268,10 @@ { \ HYPRE_Int i1, i2; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -293,16 +318,18 @@ #define hypre_SerialBoxLoop1Begin(ndim, loop_size, \ dbox1, start1, stride1, i1) \ { \ - HYPRE_Int i1; \ + HYPRE_Int hypre_loop_i1; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ zypre_BoxLoopSetOneBlock(); \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ + HYPRE_Int i1; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + i1 = hypre_loop_i1; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -314,19 +341,22 @@ dbox1, start1, stride1, i1, \ dbox2, start2, stride2, i2) \ { \ - HYPRE_Int i1,i2; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ zypre_BoxLoopSetOneBlock(); \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ + HYPRE_Int i1, i2; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ diff --git a/src/struct_mv/struct_matrix.c b/src/struct_mv/struct_matrix.c index 0f7b970c08..6d354cac50 100644 --- a/src/struct_mv/struct_matrix.c +++ b/src/struct_mv/struct_matrix.c @@ -1511,7 +1511,7 @@ hypre_StructMatrixSetBoxValues( hypre_StructMatrix *matrix, hypre_Box *dval_box; hypre_Index dval_start; hypre_Index dval_stride; - HYPRE_Int dvali; + HYPRE_Int dvali_outer; hypre_Index loop_size; HYPRE_Int i, j, s, istart, istop; @@ -1585,15 +1585,15 @@ hypre_StructMatrixSetBoxValues( hypre_StructMatrix *matrix, Should use SetConstantValues instead. */ if (constant[j]) { - dvali = hypre_BoxIndexRank(dval_box, dval_start); + dvali_outer = hypre_BoxIndexRank(dval_box, dval_start); if (action > 0) { - *datap += values[dvali]; + *datap += values[dvali_outer]; } else if (action > -1) { - *datap = values[dvali]; + *datap = values[dvali_outer]; } else { diff --git a/src/utilities/_hypre_utilities.h b/src/utilities/_hypre_utilities.h index 5b5bddff57..3333ff03c7 100644 --- a/src/utilities/_hypre_utilities.h +++ b/src/utilities/_hypre_utilities.h @@ -1961,60 +1961,59 @@ extern "C++" #ifndef HYPRE_GSELIM_H #define HYPRE_GSELIM_H -#define hypre_gselim(A,x,n) \ -{ \ - HYPRE_Int j,k,m; \ - HYPRE_Real factor; \ - HYPRE_Real divA; \ - if (n == 1) /* A is 1x1 */ \ - { \ - if (A[0] != 0.0) \ - { \ - x[0] = x[0]/A[0]; \ - } \ - } \ - else/* A is nxn. Forward elimination */ \ - { \ - for (k = 0; k < n-1; k++) \ - { \ - if (A[k*n+k] != 0.0) \ - { \ - divA = 1.0/A[k*n+k]; \ - for (j = k+1; j < n; j++) \ - { \ - if (A[j*n+k] != 0.0) \ - { \ - factor = A[j*n+k]*divA; \ - for (m = k+1; m < n; m++) \ - { \ - A[j*n+m] -= factor * A[k*n+m]; \ - } \ - x[j] -= factor * x[k]; \ - } \ - } \ - } \ - } \ - /* Back Substitution */ \ - for (k = n-1; k > 0; --k) \ - { \ - if (A[k*n+k] != 0.0) \ - { \ - x[k] /= A[k*n+k]; \ - for (j = 0; j < k; j++) \ - { \ - if (A[j*n+k] != 0.0) \ - { \ - x[j] -= x[k] * A[j*n+k]; \ - } \ - } \ - } \ - } \ - if (A[0] != 0.0) x[0] /= A[0]; \ - } \ +#define hypre_gselim(A,x,n) \ +{ \ + HYPRE_Int __j, __k, __m; \ + HYPRE_Real factor; \ + HYPRE_Real divA; \ + if (n == 1) /* A is 1x1 */ \ + { \ + if (A[0] != 0.0) \ + { \ + x[0] = x[0]/A[0]; \ + } \ + } \ + else/* A is nxn. Forward elimination */ \ + { \ + for (__k = 0; __k < n - 1; __k++) \ + { \ + if (A[__k * n + __k] != 0.0) \ + { \ + divA = 1.0/A[__k * n + __k]; \ + for (__j = __k + 1; __j < n; __j++) \ + { \ + if (A[__j * n + __k] != 0.0) \ + { \ + factor = A[__j * n + __k] * divA; \ + for (__m = __k + 1; __m < n; __m++) \ + { \ + A[__j * n + __m] -= factor * A[__k * n + __m]; \ + } \ + x[__j] -= factor * x[__k]; \ + } \ + } \ + } \ + } \ + /* Back Substitution */ \ + for (__k = n - 1; __k > 0; --__k) \ + { \ + if (A[__k * n + __k] != 0.0) \ + { \ + x[__k] /= A[__k * n + __k]; \ + for (__j = 0; __j < __k; __j++) \ + { \ + if (A[__j * n + __k] != 0.0) \ + { \ + x[__j] -= x[__k] * A[__j * n + __k]; \ + } \ + } \ + } \ + } \ + if (A[0] != 0.0) x[0] /= A[0]; \ + } \ } #endif /* #ifndef HYPRE_GSELIM_H */ - /****************************************************************************** * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other * HYPRE Project Developers. See the top-level COPYRIGHT file for details. diff --git a/src/utilities/gselim.h b/src/utilities/gselim.h index c9b6074a68..a82f8fcf23 100644 --- a/src/utilities/gselim.h +++ b/src/utilities/gselim.h @@ -8,57 +8,56 @@ #ifndef HYPRE_GSELIM_H #define HYPRE_GSELIM_H -#define hypre_gselim(A,x,n) \ -{ \ - HYPRE_Int j,k,m; \ - HYPRE_Real factor; \ - HYPRE_Real divA; \ - if (n == 1) /* A is 1x1 */ \ - { \ - if (A[0] != 0.0) \ - { \ - x[0] = x[0]/A[0]; \ - } \ - } \ - else/* A is nxn. Forward elimination */ \ - { \ - for (k = 0; k < n-1; k++) \ - { \ - if (A[k*n+k] != 0.0) \ - { \ - divA = 1.0/A[k*n+k]; \ - for (j = k+1; j < n; j++) \ - { \ - if (A[j*n+k] != 0.0) \ - { \ - factor = A[j*n+k]*divA; \ - for (m = k+1; m < n; m++) \ - { \ - A[j*n+m] -= factor * A[k*n+m]; \ - } \ - x[j] -= factor * x[k]; \ - } \ - } \ - } \ - } \ - /* Back Substitution */ \ - for (k = n-1; k > 0; --k) \ - { \ - if (A[k*n+k] != 0.0) \ - { \ - x[k] /= A[k*n+k]; \ - for (j = 0; j < k; j++) \ - { \ - if (A[j*n+k] != 0.0) \ - { \ - x[j] -= x[k] * A[j*n+k]; \ - } \ - } \ - } \ - } \ - if (A[0] != 0.0) x[0] /= A[0]; \ - } \ +#define hypre_gselim(A,x,n) \ +{ \ + HYPRE_Int __j, __k, __m; \ + HYPRE_Real factor; \ + HYPRE_Real divA; \ + if (n == 1) /* A is 1x1 */ \ + { \ + if (A[0] != 0.0) \ + { \ + x[0] = x[0]/A[0]; \ + } \ + } \ + else/* A is nxn. Forward elimination */ \ + { \ + for (__k = 0; __k < n - 1; __k++) \ + { \ + if (A[__k * n + __k] != 0.0) \ + { \ + divA = 1.0/A[__k * n + __k]; \ + for (__j = __k + 1; __j < n; __j++) \ + { \ + if (A[__j * n + __k] != 0.0) \ + { \ + factor = A[__j * n + __k] * divA; \ + for (__m = __k + 1; __m < n; __m++) \ + { \ + A[__j * n + __m] -= factor * A[__k * n + __m]; \ + } \ + x[__j] -= factor * x[__k]; \ + } \ + } \ + } \ + } \ + /* Back Substitution */ \ + for (__k = n - 1; __k > 0; --__k) \ + { \ + if (A[__k * n + __k] != 0.0) \ + { \ + x[__k] /= A[__k * n + __k]; \ + for (__j = 0; __j < __k; __j++) \ + { \ + if (A[__j * n + __k] != 0.0) \ + { \ + x[__j] -= x[__k] * A[__j * n + __k]; \ + } \ + } \ + } \ + } \ + if (A[0] != 0.0) x[0] /= A[0]; \ + } \ } #endif /* #ifndef HYPRE_GSELIM_H */ - From db2b9813aa11047e73f0f46774856b3ca399b9fd Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Wed, 3 Dec 2025 00:08:19 -0500 Subject: [PATCH 8/9] Fix remaining warnings --- src/parcsr_ls/par_mgr_rap.c | 4 +- src/parcsr_ls/par_strength.c | 1 + src/sstruct_ls/node_relax.c | 48 ++++++------ src/sstruct_mv/HYPRE_sstruct_graph.c | 40 +++++----- src/sstruct_mv/sstruct_grid.c | 10 +-- src/struct_ls/semi_interp.c | 8 +- src/struct_ls/semi_restrict.c | 8 +- src/struct_mv/_hypre_struct_mv.h | 110 +++++++++++++++++---------- src/struct_mv/box.h | 10 +-- src/struct_mv/box_manager.c | 26 +++---- src/struct_mv/boxloop_host.h | 100 +++++++++++++++--------- src/struct_mv/struct_matrix.c | 8 +- src/utilities/_hypre_utilities.h | 101 ++++++++++++------------ src/utilities/gselim.h | 101 ++++++++++++------------ 14 files changed, 315 insertions(+), 260 deletions(-) diff --git a/src/parcsr_ls/par_mgr_rap.c b/src/parcsr_ls/par_mgr_rap.c index a49c42787f..507ac7258a 100644 --- a/src/parcsr_ls/par_mgr_rap.c +++ b/src/parcsr_ls/par_mgr_rap.c @@ -650,9 +650,9 @@ hypre_MGRBuildCoarseOperator(void *mgr_vdata, if (threshold > 0.0) { #if defined (HYPRE_USING_GPU) - HYPRE_MemoryLocation memory_location = hypre_ParCSRMatrixMemoryLocation(RAP); + HYPRE_MemoryLocation rap_memory_location = hypre_ParCSRMatrixMemoryLocation(RAP); - if (hypre_GetExecPolicy1(memory_location) == HYPRE_EXEC_DEVICE) + if (hypre_GetExecPolicy1(rap_memory_location) == HYPRE_EXEC_DEVICE) { hypre_ParCSRMatrixDropSmallEntriesDevice(RAP, threshold, -1); rebuild_commpkg = 1; diff --git a/src/parcsr_ls/par_strength.c b/src/parcsr_ls/par_strength.c index f41935384f..aafc30bf1b 100644 --- a/src/parcsr_ls/par_strength.c +++ b/src/parcsr_ls/par_strength.c @@ -673,6 +673,7 @@ hypre_BoomerAMGCreateSFromCFMarker(hypre_ParCSRMatrix *A, S_temp_offd_j = hypre_CSRMatrixJ(S_offd); HYPRE_BigInt *col_map_offd_S = hypre_TAlloc(HYPRE_BigInt, num_cols_offd, HYPRE_MEMORY_HOST); hypre_ParCSRMatrixColMapOffd(S) = col_map_offd_S; + HYPRE_BigInt *col_map_offd_A = hypre_ParCSRMatrixColMapOffd(A); if (num_functions > 1) { dof_func_offd = hypre_CTAlloc(HYPRE_Int, num_cols_offd, HYPRE_MEMORY_HOST); diff --git a/src/sstruct_ls/node_relax.c b/src/sstruct_ls/node_relax.c index 1c9ef10968..b95890f184 100644 --- a/src/sstruct_ls/node_relax.c +++ b/src/sstruct_ls/node_relax.c @@ -695,7 +695,7 @@ hypre_NodeRelax( void *relax_vdata, b_data_box, start, stride, bi, x_data_box, start, stride, xi); { - HYPRE_Int vi, vj; + HYPRE_Int vi_local, vj_local; HYPRE_Real A_loc[HYPRE_MAXVARS * HYPRE_MAXVARS] = {0}; HYPRE_Real x_loc[HYPRE_MAXVARS] = {0}; @@ -704,14 +704,14 @@ hypre_NodeRelax( void *relax_vdata, * (intra-nodal) into local storage. *----------------------------------------------*/ - for (vi = 0; vi < nvars; vi++) + for (vi_local = 0; vi_local < nvars; vi_local++) { - HYPRE_Real *bpi = bp[vi]; - x_loc[vi] = bpi[bi]; - for (vj = 0; vj < nvars; vj++) + HYPRE_Real *bpi = bp[vi_local]; + x_loc[vi_local] = bpi[bi]; + for (vj_local = 0; vj_local < nvars; vj_local++) { - HYPRE_Real *Apij = Ap[vi * nvars + vj]; - A_loc[vi * nvars + vj] = Apij ? Apij[Ai] : 0.0; + HYPRE_Real *Apij = Ap[vi_local * nvars + vj_local]; + A_loc[vi_local * nvars + vj_local] = Apij ? Apij[Ai] : 0.0; } } @@ -723,10 +723,10 @@ hypre_NodeRelax( void *relax_vdata, /*------------------------------------------------ * Copy solution from local storage. *----------------------------------------------*/ - for (vi = 0; vi < nvars; vi++) + for (vi_local = 0; vi_local < nvars; vi_local++) { - HYPRE_Real *xpi = xp[vi]; - xpi[xi] = x_loc[vi]; + HYPRE_Real *xpi = xp[vi_local]; + xpi[xi] = x_loc[vi_local]; } } hypre_BoxLoop3End(Ai, bi, xi); @@ -822,12 +822,12 @@ hypre_NodeRelax( void *relax_vdata, b_data_box, start, stride, bi, t_data_box, start, stride, ti); { - HYPRE_Int vi; + HYPRE_Int vi_local; /* Copy rhs into temp vector */ - for (vi = 0; vi < nvars; vi++) + for (vi_local = 0; vi_local < nvars; vi_local++) { - HYPRE_Real *tpi = tp[vi]; - HYPRE_Real *bpi = bp[vi]; + HYPRE_Real *tpi = tp[vi_local]; + HYPRE_Real *bpi = bp[vi_local]; tpi[ti] = bpi[bi]; } } @@ -901,7 +901,7 @@ hypre_NodeRelax( void *relax_vdata, A_data_box, start, stride, Ai, t_data_box, start, stride, ti); { - HYPRE_Int vi, vj; + HYPRE_Int vi_local, vj_local; /* HYPRE_Real *A_loc = tA_loc + hypre_BoxLoopBlock() * nvars * nvars; HYPRE_Real *x_loc = tx_loc + hypre_BoxLoopBlock() * nvars; @@ -913,14 +913,14 @@ hypre_NodeRelax( void *relax_vdata, * Copy rhs and matrix for diagonal coupling * (intra-nodal) into local storage. *----------------------------------------------*/ - for (vi = 0; vi < nvars; vi++) + for (vi_local = 0; vi_local < nvars; vi_local++) { - HYPRE_Real *tpi = tp[vi]; - x_loc[vi] = tpi[ti]; - for (vj = 0; vj < nvars; vj++) + HYPRE_Real *tpi = tp[vi_local]; + x_loc[vi_local] = tpi[ti]; + for (vj_local = 0; vj_local < nvars; vj_local++) { - HYPRE_Real *Apij = Ap[vi * nvars + vj]; - A_loc[vi * nvars + vj] = Apij ? Apij[Ai] : 0.0; + HYPRE_Real *Apij = Ap[vi_local * nvars + vj_local]; + A_loc[vi_local * nvars + vj_local] = Apij ? Apij[Ai] : 0.0; } } @@ -932,10 +932,10 @@ hypre_NodeRelax( void *relax_vdata, /*------------------------------------------------ * Copy solution from local storage. *----------------------------------------------*/ - for (vi = 0; vi < nvars; vi++) + for (vi_local = 0; vi_local < nvars; vi_local++) { - HYPRE_Real *tpi = tp[vi]; - tpi[ti] = x_loc[vi]; + HYPRE_Real *tpi = tp[vi_local]; + tpi[ti] = x_loc[vi_local]; } } diff --git a/src/sstruct_mv/HYPRE_sstruct_graph.c b/src/sstruct_mv/HYPRE_sstruct_graph.c index 47c31f7fdf..8dee2331a3 100644 --- a/src/sstruct_mv/HYPRE_sstruct_graph.c +++ b/src/sstruct_mv/HYPRE_sstruct_graph.c @@ -856,13 +856,13 @@ HYPRE_SStructGraphAssemble( HYPRE_SStructGraph graph ) HYPRE_Int *fem_vars = hypre_SStructGridFEMPVars(grid, part); hypre_Index *fem_offsets = hypre_SStructGridFEMPOffsets(grid, part); hypre_Index offset; - HYPRE_Int s, iv, jv, d, nvars, entry; + HYPRE_Int s, iv, jv, d_local, nvars_local, entry_local; HYPRE_Int *stencil_sizes; hypre_Index **stencil_offsets; HYPRE_Int **stencil_vars; pgrid = hypre_SStructGridPGrid(grid, part); - nvars = hypre_SStructPGridNVars(pgrid); + nvars_local = hypre_SStructPGridNVars(pgrid); /* build default full sparsity pattern if nothing set by user */ if (fem_nsparse < 0) @@ -888,10 +888,10 @@ HYPRE_SStructGraphAssemble( HYPRE_SStructGraph graph ) fem_entries = hypre_CTAlloc(HYPRE_Int, fem_nsparse, HYPRE_MEMORY_HOST); hypre_SStructGraphFEMPEntries(graph, part) = fem_entries; - stencil_sizes = hypre_CTAlloc(HYPRE_Int, nvars, HYPRE_MEMORY_HOST); - stencil_offsets = hypre_CTAlloc(hypre_Index *, nvars, HYPRE_MEMORY_HOST); - stencil_vars = hypre_CTAlloc(HYPRE_Int *, nvars, HYPRE_MEMORY_HOST); - for (iv = 0; iv < nvars; iv++) + stencil_sizes = hypre_CTAlloc(HYPRE_Int, nvars_local, HYPRE_MEMORY_HOST); + stencil_offsets = hypre_CTAlloc(hypre_Index *, nvars_local, HYPRE_MEMORY_HOST); + stencil_vars = hypre_CTAlloc(HYPRE_Int *, nvars_local, HYPRE_MEMORY_HOST); + for (iv = 0; iv < nvars_local; iv++) { stencil_offsets[iv] = hypre_CTAlloc(hypre_Index, fem_nvars * fem_nvars, HYPRE_MEMORY_HOST); stencil_vars[iv] = hypre_CTAlloc(HYPRE_Int, fem_nvars * fem_nvars, HYPRE_MEMORY_HOST); @@ -905,33 +905,33 @@ HYPRE_SStructGraphAssemble( HYPRE_SStructGraph graph ) jv = fem_vars[j]; /* shift off-diagonal offset by diagonal */ - for (d = 0; d < ndim; d++) + for (d_local = 0; d_local < ndim; d_local++) { - offset[d] = fem_offsets[j][d] - fem_offsets[i][d]; + offset[d_local] = fem_offsets[j][d_local] - fem_offsets[i][d_local]; } /* search stencil_offsets */ - for (entry = 0; entry < stencil_sizes[iv]; entry++) + for (entry_local = 0; entry_local < stencil_sizes[iv]; entry_local++) { /* if offset is already in the stencil, break */ - if ( hypre_IndexesEqual(offset, stencil_offsets[iv][entry], ndim) - && (jv == stencil_vars[iv][entry]) ) + if ( hypre_IndexesEqual(offset, stencil_offsets[iv][entry_local], ndim) + && (jv == stencil_vars[iv][entry_local]) ) { break; } } /* if this is a new stencil offset, add it to the stencil */ - if (entry == stencil_sizes[iv]) + if (entry_local == stencil_sizes[iv]) { - for (d = 0; d < ndim; d++) + for (d_local = 0; d_local < ndim; d_local++) { - stencil_offsets[iv][entry][d] = offset[d]; + stencil_offsets[iv][entry_local][d_local] = offset[d_local]; } - stencil_vars[iv][entry] = jv; + stencil_vars[iv][entry_local] = jv; stencil_sizes[iv]++; } - fem_entries[s] = entry; + fem_entries[s] = entry_local; } /* set up the stencils */ @@ -940,11 +940,11 @@ HYPRE_SStructGraphAssemble( HYPRE_SStructGraph graph ) HYPRE_SStructStencilDestroy(stencils[part][iv]); HYPRE_SStructStencilCreate(ndim, stencil_sizes[iv], &stencils[part][iv]); - for (entry = 0; entry < stencil_sizes[iv]; entry++) + for (entry_local = 0; entry_local < stencil_sizes[iv]; entry_local++) { - HYPRE_SStructStencilSetEntry(stencils[part][iv], entry, - stencil_offsets[iv][entry], - stencil_vars[iv][entry]); + HYPRE_SStructStencilSetEntry(stencils[part][iv], entry_local, + stencil_offsets[iv][entry_local], + stencil_vars[iv][entry_local]); } } diff --git a/src/sstruct_mv/sstruct_grid.c b/src/sstruct_mv/sstruct_grid.c index 2fc4b5f9d1..07b8f83a7e 100644 --- a/src/sstruct_mv/sstruct_grid.c +++ b/src/sstruct_mv/sstruct_grid.c @@ -764,7 +764,7 @@ hypre_SStructGridAssembleBoxManagers( hypre_SStructGrid *grid ) intersected box into the Box Manager */ hypre_SStructNeighbor *vneighbor; - HYPRE_Int b, i; + HYPRE_Int b_local, i; hypre_Box *vbox; HYPRE_Int **nvneighbors = hypre_SStructGridNVNeighbors(grid); hypre_SStructNeighbor ***vneighbors = hypre_SStructGridVNeighbors(grid); @@ -806,9 +806,9 @@ hypre_SStructGridAssembleBoxManagers( hypre_SStructGrid *grid ) hypre_BoxGrowByIndex(grow_box, max_distance); /* loop through neighbors */ - for (b = 0; b < nvneighbors[part][var]; b++) + for (b_local = 0; b_local < nvneighbors[part][var]; b_local++) { - vneighbor = &vneighbors[part][var][b]; + vneighbor = &vneighbors[part][var][b_local]; vbox = hypre_SStructNeighborBox(vneighbor); /* grow neighbor box by 1 to account for shared parts */ @@ -942,9 +942,9 @@ hypre_SStructGridAssembleNborBoxManagers( hypre_SStructGrid *grid ) hypre_CopyToCleanIndex( hypre_BoxIMin(bounding_box), ndim, min_index); hypre_CopyToCleanIndex( hypre_BoxIMax(bounding_box), ndim, max_index); - for (b = 0; b < nvneighbors[part][var]; b++) + for (b_local = 0; b_local < nvneighbors[part][var]; b_local++) { - vneighbor = &vneighbors[part][var][b]; + vneighbor = &vneighbors[part][var][b_local]; vbox = hypre_SStructNeighborBox(vneighbor); /* find min and max box extents */ for (d = 0; d < ndim; d++) diff --git a/src/struct_ls/semi_interp.c b/src/struct_ls/semi_interp.c index efed42b3f9..3c6a7fbbc0 100644 --- a/src/struct_ls/semi_interp.c +++ b/src/struct_ls/semi_interp.c @@ -131,7 +131,7 @@ hypre_SemiInterp( void *interp_vdata, hypre_Box *xc_dbox; hypre_Box *e_dbox; - HYPRE_Int Pi; + HYPRE_Int Pi_outer; HYPRE_Int constant_coefficient; HYPRE_Real *Pp0, *Pp1; @@ -306,9 +306,9 @@ hypre_SemiInterp( void *interp_vdata, if ( constant_coefficient ) { HYPRE_Complex Pp0val, Pp1val; - Pi = hypre_CCBoxIndexRank( P_dbox, startc ); - Pp0val = Pp0[Pi]; - Pp1val = Pp1[Pi + Pp1_offset]; + Pi_outer = hypre_CCBoxIndexRank( P_dbox, startc ); + Pp0val = Pp0[Pi_outer]; + Pp1val = Pp1[Pi_outer + Pp1_offset]; #define DEVICE_VAR is_device_ptr(ep) hypre_BoxLoop1Begin(hypre_StructMatrixNDim(P), loop_size, diff --git a/src/struct_ls/semi_restrict.c b/src/struct_ls/semi_restrict.c index 04d787f911..d365098269 100644 --- a/src/struct_ls/semi_restrict.c +++ b/src/struct_ls/semi_restrict.c @@ -129,7 +129,7 @@ hypre_SemiRestrict( void *restrict_vdata, hypre_Box *r_dbox; hypre_Box *rc_dbox; - HYPRE_Int Ri; + HYPRE_Int Ri_outer; HYPRE_Int constant_coefficient; HYPRE_Real *Rp0, *Rp1; @@ -273,10 +273,10 @@ hypre_SemiRestrict( void *restrict_vdata, if ( constant_coefficient ) { HYPRE_Complex Rp0val, Rp1val; - Ri = hypre_CCBoxIndexRank( R_dbox, startc ); + Ri_outer = hypre_CCBoxIndexRank( R_dbox, startc ); - Rp0val = Rp0[Ri + Rp0_offset]; - Rp1val = Rp1[Ri]; + Rp0val = Rp0[Ri_outer + Rp0_offset]; + Rp1val = Rp1[Ri_outer]; #define DEVICE_VAR is_device_ptr(rcp,rp) hypre_BoxLoop2Begin(hypre_StructMatrixNDim(R), loop_size, r_dbox, start, stride, ri, diff --git a/src/struct_mv/_hypre_struct_mv.h b/src/struct_mv/_hypre_struct_mv.h index 8afbbdbf1c..10c7a86fbc 100644 --- a/src/struct_mv/_hypre_struct_mv.h +++ b/src/struct_mv/_hypre_struct_mv.h @@ -141,13 +141,11 @@ hypre_max(0, (hypre_BoxIMaxD(box, d) - hypre_BoxIMinD(box, d) + 1)) hypre_IndexD(index, d) <= hypre_BoxIMaxD(box, d) ) #define hypre_BoxSpanIndex(box, index)\ {\ - HYPRE_Int d;\ - for (d = 0; d < hypre_BoxNDim(box); d++)\ + HYPRE_Int __d;\ + for (__d = 0; __d < hypre_BoxNDim(box); __d++)\ {\ - hypre_BoxIMinD(box, d) =\ - hypre_min(hypre_BoxIMinD(box, d), hypre_IndexD(index, d));\ - hypre_BoxIMaxD(box, d) =\ - hypre_max(hypre_BoxIMaxD(box, d), hypre_IndexD(index, d));\ + hypre_BoxIMinD(box, __d) = hypre_min(hypre_BoxIMinD(box, __d), hypre_IndexD(index, __d));\ + hypre_BoxIMaxD(box, __d) = hypre_max(hypre_BoxIMaxD(box, __d), hypre_IndexD(index, __d));\ }\ } @@ -3283,17 +3281,18 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ #define zypre_BoxLoop1Begin(ndim, loop_size, \ dbox1, start1, stride1, i1) \ { \ - HYPRE_Int i1; \ + HYPRE_Int hypre_loop_i1; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + i1 = hypre_loop_i1; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3304,6 +3303,7 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ } \ zypre_BoxLoopInc1(); \ i1 += hypre__ikinc1[hypre__d]; \ + hypre_loop_i1 = i1; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -3314,20 +3314,22 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ dbox1, start1, stride1, i1, \ dbox2, start2, stride2, i2) \ { \ - HYPRE_Int i1, i2; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1, i2; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3340,6 +3342,8 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ zypre_BoxLoopInc1(); \ i1 += hypre__ikinc1[hypre__d]; \ i2 += hypre__ikinc2[hypre__d]; \ + hypre_loop_i1 = i1; \ + hypre_loop_i2 = i2; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -3351,23 +3355,26 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ dbox2, start2, stride2, i2, \ dbox3, start3, stride3, i3) \ { \ - HYPRE_Int i1, i2, i3; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2, hypre_loop_i3; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopDeclareK(3); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ - zypre_BoxLoopInitK(3, dbox3, start3, stride3, i3); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ + zypre_BoxLoopInitK(3, dbox3, start3, stride3, hypre_loop_i3); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1, i2, i3; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ - zypre_BoxLoopSetK(3, i3); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + zypre_BoxLoopSetK(3, hypre_loop_i3); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ + i3 = hypre_loop_i3; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3382,6 +3389,9 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ i1 += hypre__ikinc1[hypre__d]; \ i2 += hypre__ikinc2[hypre__d]; \ i3 += hypre__ikinc3[hypre__d]; \ + hypre_loop_i1 = i1; \ + hypre_loop_i2 = i2; \ + hypre_loop_i3 = i3; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -3393,26 +3403,30 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ dbox3, start3, stride3, i3, \ dbox4, start4, stride4, i4) \ { \ - HYPRE_Int i1, i2, i3, i4; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2, hypre_loop_i3, hypre_loop_i4; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopDeclareK(3); \ zypre_BoxLoopDeclareK(4); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ - zypre_BoxLoopInitK(3, dbox3, start3, stride3, i3); \ - zypre_BoxLoopInitK(4, dbox4, start4, stride4, i4); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ + zypre_BoxLoopInitK(3, dbox3, start3, stride3, hypre_loop_i3); \ + zypre_BoxLoopInitK(4, dbox4, start4, stride4, hypre_loop_i4); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1, i2, i3, i4; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ - zypre_BoxLoopSetK(3, i3); \ - zypre_BoxLoopSetK(4, i4); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + zypre_BoxLoopSetK(3, hypre_loop_i3); \ + zypre_BoxLoopSetK(4, hypre_loop_i4); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ + i3 = hypre_loop_i3; \ + i4 = hypre_loop_i4; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3429,6 +3443,10 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ i2 += hypre__ikinc2[hypre__d]; \ i3 += hypre__ikinc3[hypre__d]; \ i4 += hypre__ikinc4[hypre__d]; \ + hypre_loop_i1 = i1; \ + hypre_loop_i2 = i2; \ + hypre_loop_i3 = i3; \ + hypre_loop_i4 = i4; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -3437,6 +3455,7 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ #define zypre_BasicBoxLoop1Begin(ndim, loop_size, \ stride1, i1) \ { \ + HYPRE_Int hypre_loop_i1 = 0; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopInit(ndim, loop_size); \ @@ -3446,7 +3465,8 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ { \ HYPRE_Int i1; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + i1 = hypre_loop_i1; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3456,6 +3476,7 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ stride1, i1, \ stride2, i2) \ { \ + HYPRE_Int hypre_loop_i1 = 0, hypre_loop_i2 = 0; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ @@ -3467,8 +3488,10 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ { \ HYPRE_Int i1, i2; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3515,16 +3538,18 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ #define hypre_SerialBoxLoop1Begin(ndim, loop_size, \ dbox1, start1, stride1, i1) \ { \ - HYPRE_Int i1; \ + HYPRE_Int hypre_loop_i1; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ zypre_BoxLoopSetOneBlock(); \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ + HYPRE_Int i1; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + i1 = hypre_loop_i1; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -3536,19 +3561,22 @@ hypre__J = hypre__thread; i1 = i2 = 0; \ dbox1, start1, stride1, i1, \ dbox2, start2, stride2, i2) \ { \ - HYPRE_Int i1,i2; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ zypre_BoxLoopSetOneBlock(); \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ + HYPRE_Int i1, i2; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ diff --git a/src/struct_mv/box.h b/src/struct_mv/box.h index f681b646c5..54d29e163a 100644 --- a/src/struct_mv/box.h +++ b/src/struct_mv/box.h @@ -120,13 +120,11 @@ hypre_max(0, (hypre_BoxIMaxD(box, d) - hypre_BoxIMinD(box, d) + 1)) hypre_IndexD(index, d) <= hypre_BoxIMaxD(box, d) ) #define hypre_BoxSpanIndex(box, index)\ {\ - HYPRE_Int d;\ - for (d = 0; d < hypre_BoxNDim(box); d++)\ + HYPRE_Int __d;\ + for (__d = 0; __d < hypre_BoxNDim(box); __d++)\ {\ - hypre_BoxIMinD(box, d) =\ - hypre_min(hypre_BoxIMinD(box, d), hypre_IndexD(index, d));\ - hypre_BoxIMaxD(box, d) =\ - hypre_max(hypre_BoxIMaxD(box, d), hypre_IndexD(index, d));\ + hypre_BoxIMinD(box, __d) = hypre_min(hypre_BoxIMinD(box, __d), hypre_IndexD(index, __d));\ + hypre_BoxIMaxD(box, __d) = hypre_max(hypre_BoxIMaxD(box, __d), hypre_IndexD(index, __d));\ }\ } diff --git a/src/struct_mv/box_manager.c b/src/struct_mv/box_manager.c index 4daa75665a..5184a0e056 100644 --- a/src/struct_mv/box_manager.c +++ b/src/struct_mv/box_manager.c @@ -1258,7 +1258,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) HYPRE_Int statbuf[3]; HYPRE_Int send_statbuf[3]; - HYPRE_Int ndim = hypre_BoxManNDim(manager); + HYPRE_Int ndim_local = hypre_BoxManNDim(manager); void *entry_response_buf; void *index_ptr; @@ -1267,7 +1267,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) HYPRE_Real local_volume, global_volume; HYPRE_Real sendbuf2[2], recvbuf2[2]; - hypre_BoxArray *gather_regions; + hypre_BoxArray *gather_regions_local; hypre_BoxArray *local_boxes; hypre_Box *box; @@ -1291,7 +1291,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) /* create an array of local boxes. get the global box size/volume (as a HYPRE_Real). */ - local_boxes = hypre_BoxArrayCreate(num_my_entries, ndim); + local_boxes = hypre_BoxArrayCreate(num_my_entries, ndim_local); local_volume = 0.0; @@ -1335,7 +1335,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) gamma = .6; /* percentage a region must be full to avoid refinement */ hypre_StructAssumedPartitionCreate( - ndim, hypre_BoxManBoundingBox(manager), global_volume, global_num_boxes, + ndim_local, hypre_BoxManBoundingBox(manager), global_volume, global_num_boxes, local_boxes, max_regions, max_refinements, gamma, comm, &ap); hypre_BoxManAssumedPartition(manager) = ap; @@ -1357,28 +1357,28 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) * until more extensive testing is done. (RDF) */ /* if (global_num_boxes) */ { - gather_regions = hypre_BoxManGatherRegions(manager); + gather_regions_local = hypre_BoxManGatherRegions(manager); /* allocate space to store info from one box */ proc_count = 0; - proc_alloc = hypre_pow2(ndim); /* Just an initial estimate */ + proc_alloc = hypre_pow2(ndim_local); /* Just an initial estimate */ proc_array = hypre_CTAlloc(HYPRE_Int, proc_alloc, HYPRE_MEMORY_HOST); /* probably there will be one proc per box - allocate space for 2 */ - size = 2 * hypre_BoxArraySize(gather_regions); + size = 2 * hypre_BoxArraySize(gather_regions_local); tmp_proc_ids = hypre_CTAlloc(HYPRE_Int, size, HYPRE_MEMORY_HOST); count = 0; /* loop through all boxes */ - hypre_ForBoxI(i, gather_regions) + hypre_ForBoxI(i, gather_regions_local) { hypre_StructAssumedPartitionGetProcsFromBox( - ap, hypre_BoxArrayBox(gather_regions, i), + ap, hypre_BoxArrayBox(gather_regions_local, i), &proc_count, &proc_alloc, &proc_array); if ((count + proc_count) > size) { - size = size + proc_count + 2 * (hypre_BoxArraySize(gather_regions) - i); + size = size + proc_count + 2 * (hypre_BoxArraySize(gather_regions_local) - i); tmp_proc_ids = hypre_TReAlloc(tmp_proc_ids, HYPRE_Int, size, HYPRE_MEMORY_HOST); } for (j = 0; j < proc_count; j++) @@ -1627,7 +1627,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) Note: For now, we do not need to send num_ghost, position, or boxman, since this is just generated in addentry. */ - non_info_size = 2 * ndim + 2; + non_info_size = 2 * ndim_local + 2; entry_size_bytes = ((size_t) non_info_size) * sizeof(HYPRE_Int) + (size_t) hypre_BoxManEntryInfoSize(manager); @@ -1665,7 +1665,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) { size = sizeof(HYPRE_Int); /* imin */ - for (d = 0; d < ndim; d++) + for (d = 0; d < ndim_local; d++) { hypre_TMemcpy( &tmp_int, index_ptr, HYPRE_Int, 1, HYPRE_MEMORY_HOST, HYPRE_MEMORY_HOST); @@ -1674,7 +1674,7 @@ hypre_BoxManAssemble( hypre_BoxManager *manager ) } /* imax */ - for (d = 0; d < ndim; d++) + for (d = 0; d < ndim_local; d++) { hypre_TMemcpy( &tmp_int, index_ptr, HYPRE_Int, 1, HYPRE_MEMORY_HOST, HYPRE_MEMORY_HOST); diff --git a/src/struct_mv/boxloop_host.h b/src/struct_mv/boxloop_host.h index 4eb818d0ad..5e31009f06 100644 --- a/src/struct_mv/boxloop_host.h +++ b/src/struct_mv/boxloop_host.h @@ -61,17 +61,18 @@ #define zypre_BoxLoop1Begin(ndim, loop_size, \ dbox1, start1, stride1, i1) \ { \ - HYPRE_Int i1; \ + HYPRE_Int hypre_loop_i1; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + i1 = hypre_loop_i1; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -82,6 +83,7 @@ } \ zypre_BoxLoopInc1(); \ i1 += hypre__ikinc1[hypre__d]; \ + hypre_loop_i1 = i1; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -92,20 +94,22 @@ dbox1, start1, stride1, i1, \ dbox2, start2, stride2, i2) \ { \ - HYPRE_Int i1, i2; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1, i2; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -118,6 +122,8 @@ zypre_BoxLoopInc1(); \ i1 += hypre__ikinc1[hypre__d]; \ i2 += hypre__ikinc2[hypre__d]; \ + hypre_loop_i1 = i1; \ + hypre_loop_i2 = i2; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -129,23 +135,26 @@ dbox2, start2, stride2, i2, \ dbox3, start3, stride3, i3) \ { \ - HYPRE_Int i1, i2, i3; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2, hypre_loop_i3; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopDeclareK(3); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ - zypre_BoxLoopInitK(3, dbox3, start3, stride3, i3); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ + zypre_BoxLoopInitK(3, dbox3, start3, stride3, hypre_loop_i3); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1, i2, i3; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ - zypre_BoxLoopSetK(3, i3); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + zypre_BoxLoopSetK(3, hypre_loop_i3); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ + i3 = hypre_loop_i3; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -160,6 +169,9 @@ i1 += hypre__ikinc1[hypre__d]; \ i2 += hypre__ikinc2[hypre__d]; \ i3 += hypre__ikinc3[hypre__d]; \ + hypre_loop_i1 = i1; \ + hypre_loop_i2 = i2; \ + hypre_loop_i3 = i3; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -171,26 +183,30 @@ dbox3, start3, stride3, i3, \ dbox4, start4, stride4, i4) \ { \ - HYPRE_Int i1, i2, i3, i4; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2, hypre_loop_i3, hypre_loop_i4; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopDeclareK(3); \ zypre_BoxLoopDeclareK(4); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ - zypre_BoxLoopInitK(3, dbox3, start3, stride3, i3); \ - zypre_BoxLoopInitK(4, dbox4, start4, stride4, i4); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ + zypre_BoxLoopInitK(3, dbox3, start3, stride3, hypre_loop_i3); \ + zypre_BoxLoopInitK(4, dbox4, start4, stride4, hypre_loop_i4); \ OMP1 \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ HYPRE_Int i1, i2, i3, i4; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ - zypre_BoxLoopSetK(3, i3); \ - zypre_BoxLoopSetK(4, i4); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + zypre_BoxLoopSetK(3, hypre_loop_i3); \ + zypre_BoxLoopSetK(4, hypre_loop_i4); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ + i3 = hypre_loop_i3; \ + i4 = hypre_loop_i4; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -207,6 +223,10 @@ i2 += hypre__ikinc2[hypre__d]; \ i3 += hypre__ikinc3[hypre__d]; \ i4 += hypre__ikinc4[hypre__d]; \ + hypre_loop_i1 = i1; \ + hypre_loop_i2 = i2; \ + hypre_loop_i3 = i3; \ + hypre_loop_i4 = i4; \ zypre_BoxLoopInc2(); \ } \ } \ @@ -215,6 +235,7 @@ #define zypre_BasicBoxLoop1Begin(ndim, loop_size, \ stride1, i1) \ { \ + HYPRE_Int hypre_loop_i1 = 0; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopInit(ndim, loop_size); \ @@ -224,7 +245,8 @@ { \ HYPRE_Int i1; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + i1 = hypre_loop_i1; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -234,6 +256,7 @@ stride1, i1, \ stride2, i2) \ { \ + HYPRE_Int hypre_loop_i1 = 0, hypre_loop_i2 = 0; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ @@ -245,8 +268,10 @@ { \ HYPRE_Int i1, i2; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -293,16 +318,18 @@ #define hypre_SerialBoxLoop1Begin(ndim, loop_size, \ dbox1, start1, stride1, i1) \ { \ - HYPRE_Int i1; \ + HYPRE_Int hypre_loop_i1; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ zypre_BoxLoopSetOneBlock(); \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ + HYPRE_Int i1; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + i1 = hypre_loop_i1; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ @@ -314,19 +341,22 @@ dbox1, start1, stride1, i1, \ dbox2, start2, stride2, i2) \ { \ - HYPRE_Int i1,i2; \ + HYPRE_Int hypre_loop_i1, hypre_loop_i2; \ zypre_BoxLoopDeclare(); \ zypre_BoxLoopDeclareK(1); \ zypre_BoxLoopDeclareK(2); \ zypre_BoxLoopInit(ndim, loop_size); \ - zypre_BoxLoopInitK(1, dbox1, start1, stride1, i1); \ - zypre_BoxLoopInitK(2, dbox2, start2, stride2, i2); \ + zypre_BoxLoopInitK(1, dbox1, start1, stride1, hypre_loop_i1); \ + zypre_BoxLoopInitK(2, dbox2, start2, stride2, hypre_loop_i2); \ zypre_BoxLoopSetOneBlock(); \ for (hypre__block = 0; hypre__block < hypre__num_blocks; hypre__block++) \ { \ + HYPRE_Int i1, i2; \ zypre_BoxLoopSet(); \ - zypre_BoxLoopSetK(1, i1); \ - zypre_BoxLoopSetK(2, i2); \ + zypre_BoxLoopSetK(1, hypre_loop_i1); \ + zypre_BoxLoopSetK(2, hypre_loop_i2); \ + i1 = hypre_loop_i1; \ + i2 = hypre_loop_i2; \ for (hypre__J = 0; hypre__J < hypre__JN; hypre__J++) \ { \ for (hypre__I = 0; hypre__I < hypre__IN; hypre__I++) \ diff --git a/src/struct_mv/struct_matrix.c b/src/struct_mv/struct_matrix.c index 0f7b970c08..6d354cac50 100644 --- a/src/struct_mv/struct_matrix.c +++ b/src/struct_mv/struct_matrix.c @@ -1511,7 +1511,7 @@ hypre_StructMatrixSetBoxValues( hypre_StructMatrix *matrix, hypre_Box *dval_box; hypre_Index dval_start; hypre_Index dval_stride; - HYPRE_Int dvali; + HYPRE_Int dvali_outer; hypre_Index loop_size; HYPRE_Int i, j, s, istart, istop; @@ -1585,15 +1585,15 @@ hypre_StructMatrixSetBoxValues( hypre_StructMatrix *matrix, Should use SetConstantValues instead. */ if (constant[j]) { - dvali = hypre_BoxIndexRank(dval_box, dval_start); + dvali_outer = hypre_BoxIndexRank(dval_box, dval_start); if (action > 0) { - *datap += values[dvali]; + *datap += values[dvali_outer]; } else if (action > -1) { - *datap = values[dvali]; + *datap = values[dvali_outer]; } else { diff --git a/src/utilities/_hypre_utilities.h b/src/utilities/_hypre_utilities.h index 5b5bddff57..3333ff03c7 100644 --- a/src/utilities/_hypre_utilities.h +++ b/src/utilities/_hypre_utilities.h @@ -1961,60 +1961,59 @@ extern "C++" #ifndef HYPRE_GSELIM_H #define HYPRE_GSELIM_H -#define hypre_gselim(A,x,n) \ -{ \ - HYPRE_Int j,k,m; \ - HYPRE_Real factor; \ - HYPRE_Real divA; \ - if (n == 1) /* A is 1x1 */ \ - { \ - if (A[0] != 0.0) \ - { \ - x[0] = x[0]/A[0]; \ - } \ - } \ - else/* A is nxn. Forward elimination */ \ - { \ - for (k = 0; k < n-1; k++) \ - { \ - if (A[k*n+k] != 0.0) \ - { \ - divA = 1.0/A[k*n+k]; \ - for (j = k+1; j < n; j++) \ - { \ - if (A[j*n+k] != 0.0) \ - { \ - factor = A[j*n+k]*divA; \ - for (m = k+1; m < n; m++) \ - { \ - A[j*n+m] -= factor * A[k*n+m]; \ - } \ - x[j] -= factor * x[k]; \ - } \ - } \ - } \ - } \ - /* Back Substitution */ \ - for (k = n-1; k > 0; --k) \ - { \ - if (A[k*n+k] != 0.0) \ - { \ - x[k] /= A[k*n+k]; \ - for (j = 0; j < k; j++) \ - { \ - if (A[j*n+k] != 0.0) \ - { \ - x[j] -= x[k] * A[j*n+k]; \ - } \ - } \ - } \ - } \ - if (A[0] != 0.0) x[0] /= A[0]; \ - } \ +#define hypre_gselim(A,x,n) \ +{ \ + HYPRE_Int __j, __k, __m; \ + HYPRE_Real factor; \ + HYPRE_Real divA; \ + if (n == 1) /* A is 1x1 */ \ + { \ + if (A[0] != 0.0) \ + { \ + x[0] = x[0]/A[0]; \ + } \ + } \ + else/* A is nxn. Forward elimination */ \ + { \ + for (__k = 0; __k < n - 1; __k++) \ + { \ + if (A[__k * n + __k] != 0.0) \ + { \ + divA = 1.0/A[__k * n + __k]; \ + for (__j = __k + 1; __j < n; __j++) \ + { \ + if (A[__j * n + __k] != 0.0) \ + { \ + factor = A[__j * n + __k] * divA; \ + for (__m = __k + 1; __m < n; __m++) \ + { \ + A[__j * n + __m] -= factor * A[__k * n + __m]; \ + } \ + x[__j] -= factor * x[__k]; \ + } \ + } \ + } \ + } \ + /* Back Substitution */ \ + for (__k = n - 1; __k > 0; --__k) \ + { \ + if (A[__k * n + __k] != 0.0) \ + { \ + x[__k] /= A[__k * n + __k]; \ + for (__j = 0; __j < __k; __j++) \ + { \ + if (A[__j * n + __k] != 0.0) \ + { \ + x[__j] -= x[__k] * A[__j * n + __k]; \ + } \ + } \ + } \ + } \ + if (A[0] != 0.0) x[0] /= A[0]; \ + } \ } #endif /* #ifndef HYPRE_GSELIM_H */ - /****************************************************************************** * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other * HYPRE Project Developers. See the top-level COPYRIGHT file for details. diff --git a/src/utilities/gselim.h b/src/utilities/gselim.h index c9b6074a68..a82f8fcf23 100644 --- a/src/utilities/gselim.h +++ b/src/utilities/gselim.h @@ -8,57 +8,56 @@ #ifndef HYPRE_GSELIM_H #define HYPRE_GSELIM_H -#define hypre_gselim(A,x,n) \ -{ \ - HYPRE_Int j,k,m; \ - HYPRE_Real factor; \ - HYPRE_Real divA; \ - if (n == 1) /* A is 1x1 */ \ - { \ - if (A[0] != 0.0) \ - { \ - x[0] = x[0]/A[0]; \ - } \ - } \ - else/* A is nxn. Forward elimination */ \ - { \ - for (k = 0; k < n-1; k++) \ - { \ - if (A[k*n+k] != 0.0) \ - { \ - divA = 1.0/A[k*n+k]; \ - for (j = k+1; j < n; j++) \ - { \ - if (A[j*n+k] != 0.0) \ - { \ - factor = A[j*n+k]*divA; \ - for (m = k+1; m < n; m++) \ - { \ - A[j*n+m] -= factor * A[k*n+m]; \ - } \ - x[j] -= factor * x[k]; \ - } \ - } \ - } \ - } \ - /* Back Substitution */ \ - for (k = n-1; k > 0; --k) \ - { \ - if (A[k*n+k] != 0.0) \ - { \ - x[k] /= A[k*n+k]; \ - for (j = 0; j < k; j++) \ - { \ - if (A[j*n+k] != 0.0) \ - { \ - x[j] -= x[k] * A[j*n+k]; \ - } \ - } \ - } \ - } \ - if (A[0] != 0.0) x[0] /= A[0]; \ - } \ +#define hypre_gselim(A,x,n) \ +{ \ + HYPRE_Int __j, __k, __m; \ + HYPRE_Real factor; \ + HYPRE_Real divA; \ + if (n == 1) /* A is 1x1 */ \ + { \ + if (A[0] != 0.0) \ + { \ + x[0] = x[0]/A[0]; \ + } \ + } \ + else/* A is nxn. Forward elimination */ \ + { \ + for (__k = 0; __k < n - 1; __k++) \ + { \ + if (A[__k * n + __k] != 0.0) \ + { \ + divA = 1.0/A[__k * n + __k]; \ + for (__j = __k + 1; __j < n; __j++) \ + { \ + if (A[__j * n + __k] != 0.0) \ + { \ + factor = A[__j * n + __k] * divA; \ + for (__m = __k + 1; __m < n; __m++) \ + { \ + A[__j * n + __m] -= factor * A[__k * n + __m]; \ + } \ + x[__j] -= factor * x[__k]; \ + } \ + } \ + } \ + } \ + /* Back Substitution */ \ + for (__k = n - 1; __k > 0; --__k) \ + { \ + if (A[__k * n + __k] != 0.0) \ + { \ + x[__k] /= A[__k * n + __k]; \ + for (__j = 0; __j < __k; __j++) \ + { \ + if (A[__j * n + __k] != 0.0) \ + { \ + x[__j] -= x[__k] * A[__j * n + __k]; \ + } \ + } \ + } \ + } \ + if (A[0] != 0.0) x[0] /= A[0]; \ + } \ } #endif /* #ifndef HYPRE_GSELIM_H */ - From b7aa6e890782c725ac1198b9710179feea843eba Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Wed, 3 Dec 2025 10:05:40 -0500 Subject: [PATCH 9/9] Bug fix --- src/IJ_mv/IJMatrix_parcsr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/IJ_mv/IJMatrix_parcsr.c b/src/IJ_mv/IJMatrix_parcsr.c index 42110c1ce9..02d6b31a0b 100644 --- a/src/IJ_mv/IJMatrix_parcsr.c +++ b/src/IJ_mv/IJMatrix_parcsr.c @@ -1866,7 +1866,7 @@ hypre_IJMatrixAssembleOffProcValsParCSR( hypre_IJMatrix *matrix, MPI_Comm comm = hypre_IJMatrixComm(matrix); - HYPRE_Int i, j, k, in_i; + HYPRE_Int i, j, k, in_i, li; HYPRE_Int myid; HYPRE_Int proc_id, last_proc, prev_id, tmp_id; @@ -2451,9 +2451,9 @@ hypre_IJMatrixAssembleOffProcValsParCSR( hypre_IJMatrix *matrix, HYPRE_MEMORY_HOST); } - for (i = 0; i < num_elements; i++) + for (li = 0; li < num_elements; li++) { - off_proc_i_recv[off_proc_nelm_recv_cur + i] = row; + off_proc_i_recv[off_proc_nelm_recv_cur + li] = row; } hypre_TMemcpy(off_proc_j_recv + off_proc_nelm_recv_cur, col_ptr, HYPRE_BigInt, num_elements, HYPRE_MEMORY_HOST, HYPRE_MEMORY_HOST);