diff --git a/prec/psb_d_prec_type.f90 b/prec/psb_d_prec_type.f90 index 8ef0ad97..2f0731a5 100644 --- a/prec/psb_d_prec_type.f90 +++ b/prec/psb_d_prec_type.f90 @@ -243,13 +243,14 @@ contains end subroutine d_apply2v - subroutine d_apply1v(prec,x,desc_data,info,trans) + subroutine d_apply1v(prec,x,desc_data,info,trans,work) use psb_base_mod type(psb_desc_type),intent(in) :: desc_data class(psb_dprec_type), intent(in) :: prec real(psb_dpk_),intent(inout) :: x(:) integer, intent(out) :: info character(len=1), optional :: trans + real(psb_dpk_),intent(inout), optional, target :: work(:) character :: trans_ integer :: ictxt,np,me, err_act diff --git a/test/fileread/df_sample.f90 b/test/fileread/df_sample.f90 index cd27df2e..11d12594 100644 --- a/test/fileread/df_sample.f90 +++ b/test/fileread/df_sample.f90 @@ -174,6 +174,8 @@ program df_sample end if + call psb_mat_renum(psb_mat_renum_gps_,aux_a,info) + ! switch over different partition types if (ipart == 0) then call psb_barrier(ictxt) diff --git a/util/psb_gps_mod.f90 b/util/psb_gps_mod.f90 index 2552a525..5e276df2 100644 --- a/util/psb_gps_mod.f90 +++ b/util/psb_gps_mod.f90 @@ -116,7 +116,7 @@ CONTAINS ! COMMON /CC/ XCC, SIZEG(50), STPT(50) ! COMMON /LVLW/ NHIGH(100), NLOW(100), NACUM(100) DIMENSION CCSTOR(NR), IOLD(NR) - DIMENSION NDSTK(NR,IDEGE), LVL(NR), LVLS1(1), LVLS2(1), RENUM(NR+1), NDEG(NR) + DIMENSION NDSTK(NR,IDEGE), LVL(NR), LVLS1(NR), LVLS2(NR), RENUM(NR+1), NDEG(NR) !!$ integer :: stnode, rvnode, stnum, sbnum !!$ integer :: ndstk(nr,iedge), iold(nr), renum(nr+1), ndeg(nr) !!$ integer :: lvl(nr), lvls1(nr), lvls2(nr), ccstor(nr) diff --git a/util/psb_renum_impl.F90 b/util/psb_renum_impl.F90 index 4a9af785..f335d5c2 100644 --- a/util/psb_renum_impl.F90 +++ b/util/psb_renum_impl.F90 @@ -16,7 +16,7 @@ subroutine psb_d_mat_renum(alg,mat,info) info = psb_success_ select case (alg) - case(psb_renum_gps_) + case(psb_mat_renum_gps_) call psb_mat_renum_gps(mat,info) @@ -85,11 +85,17 @@ contains end if do i=1, nr iold(i) = i + ndstk(i,:) = 0 + k = 0 + do j=acsr%irp(i),acsr%irp(i+1)-1 + k = k + 1 + ndstk(i,k) = acsr%ja(j) + end do end do perm = 0 call psb_gps_reduce(ndstk,nr,ideg,iold,perm,ndeg,ibw,ipf,idpth) - + if (.not.psb_isaperm(nr,perm)) then write(0,*) 'Something wrong: bad perm from gps_reduce' info = psb_err_from_subroutine_ diff --git a/util/psb_renum_mod.f90 b/util/psb_renum_mod.f90 index 77fc6f2b..0bdcd7e9 100644 --- a/util/psb_renum_mod.f90 +++ b/util/psb_renum_mod.f90 @@ -1,7 +1,7 @@ module psb_renum_mod use psb_base_mod - integer, parameter :: psb_renum_gps_ = 456 + integer, parameter :: psb_mat_renum_gps_ = 456 interface psb_mat_renum