some bugs fixed

psblas3-type-indexed
Alfredo Buttari 20 years ago
parent 1b407fa3ec
commit 3ac80ee128

@ -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)

@ -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

Loading…
Cancel
Save