From 3ac80ee12887e8256120e2766fac7a87bbae5c22 Mon Sep 17 00:00:00 2001 From: Alfredo Buttari Date: Thu, 29 Sep 2005 09:01:35 +0000 Subject: [PATCH] some bugs fixed --- src/comm/psb_dhalo.f90 | 4 ++-- src/comm/psb_dovrl.f90 | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/comm/psb_dhalo.f90 b/src/comm/psb_dhalo.f90 index 90872c5c..6682b18b 100644 --- a/src/comm/psb_dhalo.f90 +++ b/src/comm/psb_dhalo.f90 @@ -144,7 +144,7 @@ subroutine psb_dhalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) xp => x(iix:size(x,1),jjx:jjx+k-1) if(ltran.eq.'N') then call psi_swapdata(imode,k,0.d0,xp,& - & desc_a,iwork,info) + & desc_a,iwork,info,data=psb_comm_halo_) !!$ call PSI_dSwapData(imode,k,0.d0,x(1,jjx),& !!$ & size(x,1),desc_a%matrix_data,& !!$ & desc_a%halo_index,iwork,liwork,info) @@ -302,7 +302,7 @@ subroutine psb_dhalov(x,desc_a,info,alpha,work,tran,mode) ! exchange halo elements if(ltran.eq.'N') then call psi_swapdata(imode,0.d0,x(iix:size(x)),& - & desc_a,iwork,info) + & desc_a,iwork,info,data=psb_comm_halo_) else if((ltran.eq.'T').or.(ltran.eq.'H')) then call psi_swaptran(imode,1.d0,x(iix:size(x)),& & desc_a,iwork,info) diff --git a/src/comm/psb_dovrl.f90 b/src/comm/psb_dovrl.f90 index f501cec2..95efd1c7 100644 --- a/src/comm/psb_dovrl.f90 +++ b/src/comm/psb_dovrl.f90 @@ -25,7 +25,7 @@ subroutine psb_dovrlm(x,desc_a,info,jx,ik,work,choice,update_type) real(kind(1.d0)), intent(inout), target :: x(:,:) type(psb_desc_type), intent(in) :: desc_a integer, intent(out) :: info - real(kind(1.d0)), intent(inout), optional, target :: work(:) + real(kind(1.d0)), optional, target :: work(:) logical, intent(in), optional :: choice integer, intent(in), optional :: update_type,jx,ik @@ -68,7 +68,7 @@ subroutine psb_dovrlm(x,desc_a,info,jx,ik,work,choice,update_type) nrow = desc_a%matrix_data(psb_n_row_) ncol = desc_a%matrix_data(psb_n_col_) - maxk=size(x,2)-jx+1 + maxk=size(x,2)-ijx+1 if(present(ik)) then if(ik.gt.maxk) then @@ -138,7 +138,7 @@ subroutine psb_dovrlm(x,desc_a,info,jx,ik,work,choice,update_type) if(ichoice) then xp => x(iix:size(x,1),jjx:jjx+k-1) call psi_swapdata(imode,k,1.d0,xp,& - & desc_a,iwork,info) + & desc_a,iwork,info,data=psb_comm_ovr_) end if if(info.ne.0) then @@ -216,7 +216,7 @@ subroutine psb_dovrlv(x,desc_a,info,work,choice,update_type) real(kind(1.d0)), intent(inout), target :: x(:) type(psb_desc_type), intent(in) :: desc_a integer, intent(out) :: info - real(kind(1.d0)), intent(inout), optional, target :: work(:) + real(kind(1.d0)), optional, target :: work(:) logical, intent(in), optional :: choice integer, intent(in), optional :: update_type @@ -314,7 +314,7 @@ subroutine psb_dovrlv(x,desc_a,info,work,choice,update_type) ! exchange overlap elements if(ichoice) then call psi_swapdata(imode,1.d0,x(iix:size(x)),& - & desc_a,iwork,info) + & desc_a,iwork,info,data=psb_comm_ovr_) end if if(info.ne.0) then