diff --git a/mlprec/impl/aggregator/mld_c_soc1_map_bld.f90 b/mlprec/impl/aggregator/mld_c_soc1_map_bld.f90 index 2262bb7e..3a284a7b 100644 --- a/mlprec/impl/aggregator/mld_c_soc1_map_bld.f90 +++ b/mlprec/impl/aggregator/mld_c_soc1_map_bld.f90 @@ -88,7 +88,7 @@ subroutine mld_c_soc1_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) & ideg(:), idxs(:) integer(psb_lpk_), allocatable :: tmpaggr(:) complex(psb_spk_), allocatable :: val(:), diag(:) - integer(psb_ipk_) :: icnt,nlp,k,n,ia,isz,nr, naggr,i,j,m, nz, ilg, ii, ip + integer(psb_ipk_) :: icnt,nlp,k,n,ia,isz,nr, nc, naggr,i,j,m, nz, ilg, ii, ip type(psb_c_csr_sparse_mat) :: acsr real(psb_spk_) :: cpling, tcl logical :: disjoint @@ -112,8 +112,9 @@ subroutine mld_c_soc1_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) ncol = desc_a%get_local_cols() nr = a%get_nrows() + nc = a%get_ncols() allocate(ilaggr(nr),neigh(nr),ideg(nr),idxs(nr),& - & icol(nr),val(nr),stat=info) + & icol(nc),val(nc),stat=info) if(info /= psb_success_) then info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/2*nr,izero,izero,izero,izero/),& diff --git a/mlprec/impl/aggregator/mld_c_soc2_map_bld.f90 b/mlprec/impl/aggregator/mld_c_soc2_map_bld.f90 index 43caf38f..d3185a68 100644 --- a/mlprec/impl/aggregator/mld_c_soc2_map_bld.f90 +++ b/mlprec/impl/aggregator/mld_c_soc2_map_bld.f90 @@ -113,7 +113,7 @@ subroutine mld_c_soc2_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) nr = a%get_nrows() nc = a%get_ncols() - allocate(ilaggr(nr),neigh(nr),ideg(nr),idxs(nr),icol(nr),stat=info) + allocate(ilaggr(nr),neigh(nr),ideg(nr),idxs(nr),icol(nc),stat=info) if(info /= psb_success_) then info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/2*nr,izero,izero,izero,izero/),& diff --git a/mlprec/impl/aggregator/mld_caggrmat_smth_asb.f90 b/mlprec/impl/aggregator/mld_caggrmat_smth_asb.f90 index a38cb945..38cd9c66 100644 --- a/mlprec/impl/aggregator/mld_caggrmat_smth_asb.f90 +++ b/mlprec/impl/aggregator/mld_caggrmat_smth_asb.f90 @@ -65,14 +65,7 @@ ! specified by the user through mld_cprecinit and mld_zprecset. ! On output from this routine the entries of AC, op_prol, op_restr ! are still in "global numbering" mode; this is fixed in the calling routine -! mld_c_lev_aggrmat_asb. -! -! For more details see -! M. Brezina and P. Vanek, A black-box iterative solver based on a -! two-level Schwarz method, Computing, 63 (1999), 233-263. -! P. D'Ambra, D. di Serafino and S. Filippone, On the development of -! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math. -! 57 (2007), 1181-1196. +! aggregator%mat_asb. ! ! ! Arguments: diff --git a/mlprec/impl/aggregator/mld_d_soc1_map_bld.f90 b/mlprec/impl/aggregator/mld_d_soc1_map_bld.f90 index a8b8f72f..d296f4b0 100644 --- a/mlprec/impl/aggregator/mld_d_soc1_map_bld.f90 +++ b/mlprec/impl/aggregator/mld_d_soc1_map_bld.f90 @@ -88,7 +88,7 @@ subroutine mld_d_soc1_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) & ideg(:), idxs(:) integer(psb_lpk_), allocatable :: tmpaggr(:) real(psb_dpk_), allocatable :: val(:), diag(:) - integer(psb_ipk_) :: icnt,nlp,k,n,ia,isz,nr, naggr,i,j,m, nz, ilg, ii, ip + integer(psb_ipk_) :: icnt,nlp,k,n,ia,isz,nr, nc, naggr,i,j,m, nz, ilg, ii, ip type(psb_d_csr_sparse_mat) :: acsr real(psb_dpk_) :: cpling, tcl logical :: disjoint @@ -112,8 +112,9 @@ subroutine mld_d_soc1_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) ncol = desc_a%get_local_cols() nr = a%get_nrows() + nc = a%get_ncols() allocate(ilaggr(nr),neigh(nr),ideg(nr),idxs(nr),& - & icol(nr),val(nr),stat=info) + & icol(nc),val(nc),stat=info) if(info /= psb_success_) then info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/2*nr,izero,izero,izero,izero/),& diff --git a/mlprec/impl/aggregator/mld_d_soc2_map_bld.f90 b/mlprec/impl/aggregator/mld_d_soc2_map_bld.f90 index 307426bf..ae9c5346 100644 --- a/mlprec/impl/aggregator/mld_d_soc2_map_bld.f90 +++ b/mlprec/impl/aggregator/mld_d_soc2_map_bld.f90 @@ -113,7 +113,7 @@ subroutine mld_d_soc2_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) nr = a%get_nrows() nc = a%get_ncols() - allocate(ilaggr(nr),neigh(nr),ideg(nr),idxs(nr),icol(nr),stat=info) + allocate(ilaggr(nr),neigh(nr),ideg(nr),idxs(nr),icol(nc),stat=info) if(info /= psb_success_) then info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/2*nr,izero,izero,izero,izero/),& diff --git a/mlprec/impl/aggregator/mld_daggrmat_smth_asb.f90 b/mlprec/impl/aggregator/mld_daggrmat_smth_asb.f90 index d72c1a16..82ea1464 100644 --- a/mlprec/impl/aggregator/mld_daggrmat_smth_asb.f90 +++ b/mlprec/impl/aggregator/mld_daggrmat_smth_asb.f90 @@ -65,14 +65,7 @@ ! specified by the user through mld_dprecinit and mld_zprecset. ! On output from this routine the entries of AC, op_prol, op_restr ! are still in "global numbering" mode; this is fixed in the calling routine -! mld_d_lev_aggrmat_asb. -! -! For more details see -! M. Brezina and P. Vanek, A black-box iterative solver based on a -! two-level Schwarz method, Computing, 63 (1999), 233-263. -! P. D'Ambra, D. di Serafino and S. Filippone, On the development of -! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math. -! 57 (2007), 1181-1196. +! aggregator%mat_asb. ! ! ! Arguments: diff --git a/mlprec/impl/aggregator/mld_s_soc1_map_bld.f90 b/mlprec/impl/aggregator/mld_s_soc1_map_bld.f90 index 32522ee4..403b1d73 100644 --- a/mlprec/impl/aggregator/mld_s_soc1_map_bld.f90 +++ b/mlprec/impl/aggregator/mld_s_soc1_map_bld.f90 @@ -88,7 +88,7 @@ subroutine mld_s_soc1_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) & ideg(:), idxs(:) integer(psb_lpk_), allocatable :: tmpaggr(:) real(psb_spk_), allocatable :: val(:), diag(:) - integer(psb_ipk_) :: icnt,nlp,k,n,ia,isz,nr, naggr,i,j,m, nz, ilg, ii, ip + integer(psb_ipk_) :: icnt,nlp,k,n,ia,isz,nr, nc, naggr,i,j,m, nz, ilg, ii, ip type(psb_s_csr_sparse_mat) :: acsr real(psb_spk_) :: cpling, tcl logical :: disjoint @@ -112,8 +112,9 @@ subroutine mld_s_soc1_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) ncol = desc_a%get_local_cols() nr = a%get_nrows() + nc = a%get_ncols() allocate(ilaggr(nr),neigh(nr),ideg(nr),idxs(nr),& - & icol(nr),val(nr),stat=info) + & icol(nc),val(nc),stat=info) if(info /= psb_success_) then info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/2*nr,izero,izero,izero,izero/),& diff --git a/mlprec/impl/aggregator/mld_s_soc2_map_bld.f90 b/mlprec/impl/aggregator/mld_s_soc2_map_bld.f90 index 2629e3c5..682fb25c 100644 --- a/mlprec/impl/aggregator/mld_s_soc2_map_bld.f90 +++ b/mlprec/impl/aggregator/mld_s_soc2_map_bld.f90 @@ -113,7 +113,7 @@ subroutine mld_s_soc2_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) nr = a%get_nrows() nc = a%get_ncols() - allocate(ilaggr(nr),neigh(nr),ideg(nr),idxs(nr),icol(nr),stat=info) + allocate(ilaggr(nr),neigh(nr),ideg(nr),idxs(nr),icol(nc),stat=info) if(info /= psb_success_) then info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/2*nr,izero,izero,izero,izero/),& diff --git a/mlprec/impl/aggregator/mld_saggrmat_smth_asb.f90 b/mlprec/impl/aggregator/mld_saggrmat_smth_asb.f90 index 49606873..3cb3dd15 100644 --- a/mlprec/impl/aggregator/mld_saggrmat_smth_asb.f90 +++ b/mlprec/impl/aggregator/mld_saggrmat_smth_asb.f90 @@ -65,14 +65,7 @@ ! specified by the user through mld_sprecinit and mld_zprecset. ! On output from this routine the entries of AC, op_prol, op_restr ! are still in "global numbering" mode; this is fixed in the calling routine -! mld_s_lev_aggrmat_asb. -! -! For more details see -! M. Brezina and P. Vanek, A black-box iterative solver based on a -! two-level Schwarz method, Computing, 63 (1999), 233-263. -! P. D'Ambra, D. di Serafino and S. Filippone, On the development of -! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math. -! 57 (2007), 1181-1196. +! aggregator%mat_asb. ! ! ! Arguments: diff --git a/mlprec/impl/aggregator/mld_z_soc1_map_bld.f90 b/mlprec/impl/aggregator/mld_z_soc1_map_bld.f90 index 9019c640..30ad1f60 100644 --- a/mlprec/impl/aggregator/mld_z_soc1_map_bld.f90 +++ b/mlprec/impl/aggregator/mld_z_soc1_map_bld.f90 @@ -88,7 +88,7 @@ subroutine mld_z_soc1_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) & ideg(:), idxs(:) integer(psb_lpk_), allocatable :: tmpaggr(:) complex(psb_dpk_), allocatable :: val(:), diag(:) - integer(psb_ipk_) :: icnt,nlp,k,n,ia,isz,nr, naggr,i,j,m, nz, ilg, ii, ip + integer(psb_ipk_) :: icnt,nlp,k,n,ia,isz,nr, nc, naggr,i,j,m, nz, ilg, ii, ip type(psb_z_csr_sparse_mat) :: acsr real(psb_dpk_) :: cpling, tcl logical :: disjoint @@ -112,8 +112,9 @@ subroutine mld_z_soc1_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) ncol = desc_a%get_local_cols() nr = a%get_nrows() + nc = a%get_ncols() allocate(ilaggr(nr),neigh(nr),ideg(nr),idxs(nr),& - & icol(nr),val(nr),stat=info) + & icol(nc),val(nc),stat=info) if(info /= psb_success_) then info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/2*nr,izero,izero,izero,izero/),& diff --git a/mlprec/impl/aggregator/mld_z_soc2_map_bld.f90 b/mlprec/impl/aggregator/mld_z_soc2_map_bld.f90 index c87e4fee..d7a78662 100644 --- a/mlprec/impl/aggregator/mld_z_soc2_map_bld.f90 +++ b/mlprec/impl/aggregator/mld_z_soc2_map_bld.f90 @@ -113,7 +113,7 @@ subroutine mld_z_soc2_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) nr = a%get_nrows() nc = a%get_ncols() - allocate(ilaggr(nr),neigh(nr),ideg(nr),idxs(nr),icol(nr),stat=info) + allocate(ilaggr(nr),neigh(nr),ideg(nr),idxs(nr),icol(nc),stat=info) if(info /= psb_success_) then info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/2*nr,izero,izero,izero,izero/),& diff --git a/mlprec/impl/aggregator/mld_zaggrmat_smth_asb.f90 b/mlprec/impl/aggregator/mld_zaggrmat_smth_asb.f90 index d1c1dd12..41dd3d06 100644 --- a/mlprec/impl/aggregator/mld_zaggrmat_smth_asb.f90 +++ b/mlprec/impl/aggregator/mld_zaggrmat_smth_asb.f90 @@ -65,14 +65,7 @@ ! specified by the user through mld_zprecinit and mld_zprecset. ! On output from this routine the entries of AC, op_prol, op_restr ! are still in "global numbering" mode; this is fixed in the calling routine -! mld_z_lev_aggrmat_asb. -! -! For more details see -! M. Brezina and P. Vanek, A black-box iterative solver based on a -! two-level Schwarz method, Computing, 63 (1999), 233-263. -! P. D'Ambra, D. di Serafino and S. Filippone, On the development of -! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math. -! 57 (2007), 1181-1196. +! aggregator%mat_asb. ! ! ! Arguments: diff --git a/mlprec/impl/solver/mld_d_mumps_solver_bld.F90 b/mlprec/impl/solver/mld_d_mumps_solver_bld.F90 index 115619e1..afe048b4 100644 --- a/mlprec/impl/solver/mld_d_mumps_solver_bld.F90 +++ b/mlprec/impl/solver/mld_d_mumps_solver_bld.F90 @@ -60,7 +60,8 @@ type(psb_d_coo_sparse_mat), target :: acoo integer(psb_ipk_) :: n_row,n_col, nrow_a, nztota, nglob, nglobrec, nzt, npr, npc integer(psb_ipk_) :: ifrst, ibcheck - integer(psb_ipk_) :: ictxt, ictxt1, icomm, np, iam, me, i, err_act, debug_unit, debug_level + integer(psb_ipk_) :: ictxt, ictxt1, icomm, np, iam, me, i, & + & err_act, debug_unit, debug_level character(len=20) :: name='d_mumps_solver_bld', ch_err #if defined(HAVE_MUMPS_) && !defined(LPK8)