mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-06 22:55:08 +00:00
Fix calls to checkvect in data exchange functions.
This commit is contained in:
+14
-29
@@ -67,7 +67,7 @@ subroutine psb_chalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_
|
||||
& nrow, ncol, lldx, imode, err, liwork,data_
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
complex(psb_spk_),pointer :: iwork(:)
|
||||
character :: tran_
|
||||
@@ -98,11 +98,12 @@ subroutine psb_chalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
endif
|
||||
|
||||
ix = 1
|
||||
ijx = 1
|
||||
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
lldx = x%get_nrows()
|
||||
|
||||
if (present(tran)) then
|
||||
tran_ = psb_toupper(tran)
|
||||
@@ -120,23 +121,14 @@ subroutine psb_chalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
imode = IOR(psb_swap_send_,psb_swap_recv_)
|
||||
endif
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if ((info == 0).and.(lldx<ncol)) call x%reall(ncol,info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
@@ -208,7 +200,7 @@ subroutine psb_chalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_
|
||||
& nrow, ncol, lldx, imode, err, liwork,data_
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
complex(psb_spk_),pointer :: iwork(:)
|
||||
character :: tran_
|
||||
@@ -244,6 +236,8 @@ subroutine psb_chalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
lldx = x%get_nrows()
|
||||
|
||||
if (present(tran)) then
|
||||
tran_ = psb_toupper(tran)
|
||||
@@ -261,23 +255,14 @@ subroutine psb_chalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
imode = IOR(psb_swap_send_,psb_swap_recv_)
|
||||
endif
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if (lldx < ncol) call x%reall(ncol,x%get_ncols(),info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
|
||||
@@ -132,22 +132,13 @@ subroutine psb_chalom(x,desc_a,info,jx,ik,work,tran,mode,data)
|
||||
endif
|
||||
ldx = size(x,1)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
@@ -324,22 +315,13 @@ subroutine psb_chalov(x,desc_a,info,work,tran,mode,data)
|
||||
endif
|
||||
ldx = size(x,1)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
|
||||
+12
-28
@@ -76,7 +76,7 @@ subroutine psb_covrl_vect(x,desc_a,info,work,update,mode)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, k, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_, update_, mode_, ncol
|
||||
& nrow, ncol, imode, err,liwork_, data_, update_, mode
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
complex(psb_spk_),pointer :: iwork(:)
|
||||
logical :: do_swap
|
||||
@@ -106,13 +106,12 @@ subroutine psb_covrl_vect(x,desc_a,info,work,update,mode)
|
||||
endif
|
||||
|
||||
ix = 1
|
||||
ijx = 1
|
||||
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
|
||||
ldx = x%get_nrows()
|
||||
k = 1
|
||||
|
||||
if (present(update)) then
|
||||
@@ -129,22 +128,14 @@ subroutine psb_covrl_vect(x,desc_a,info,work,update,mode)
|
||||
do_swap = (mode_ /= 0)
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
|
||||
if ((info == 0).and.(ldx<ncol)) call x%reall(ncol,info)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
@@ -203,7 +194,7 @@ subroutine psb_covrl_multivect(x,desc_a,info,work,update,mode)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, k, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_, update_, mode_, ncol
|
||||
& nrow, ncol, ldx, imode, err,liwork_, data_, update_, mode
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
complex(psb_spk_),pointer :: iwork(:)
|
||||
logical :: do_swap
|
||||
@@ -239,6 +230,7 @@ subroutine psb_covrl_multivect(x,desc_a,info,work,update,mode)
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
ldx = x%get_nrows()
|
||||
|
||||
k = 1
|
||||
|
||||
@@ -256,22 +248,14 @@ subroutine psb_covrl_multivect(x,desc_a,info,work,update,mode)
|
||||
do_swap = (mode_ /= 0)
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if (ldx < ncol) call x%reall(ncol,x%get_ncols(),info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
|
||||
@@ -142,20 +142,11 @@ subroutine psb_covrlm(x,desc_a,info,jx,ik,work,update,mode)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
@@ -332,12 +323,11 @@ subroutine psb_covrlv(x,desc_a,info,work,update,mode)
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
if(info /= 0) goto 9999
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
|
||||
+14
-29
@@ -67,7 +67,7 @@ subroutine psb_dhalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_
|
||||
& nrow, ncol, lldx, imode, err, liwork,data_
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
real(psb_dpk_),pointer :: iwork(:)
|
||||
character :: tran_
|
||||
@@ -98,11 +98,12 @@ subroutine psb_dhalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
endif
|
||||
|
||||
ix = 1
|
||||
ijx = 1
|
||||
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
lldx = x%get_nrows()
|
||||
|
||||
if (present(tran)) then
|
||||
tran_ = psb_toupper(tran)
|
||||
@@ -120,23 +121,14 @@ subroutine psb_dhalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
imode = IOR(psb_swap_send_,psb_swap_recv_)
|
||||
endif
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if ((info == 0).and.(lldx<ncol)) call x%reall(ncol,info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
@@ -208,7 +200,7 @@ subroutine psb_dhalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_
|
||||
& nrow, ncol, lldx, imode, err, liwork,data_
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
real(psb_dpk_),pointer :: iwork(:)
|
||||
character :: tran_
|
||||
@@ -244,6 +236,8 @@ subroutine psb_dhalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
lldx = x%get_nrows()
|
||||
|
||||
if (present(tran)) then
|
||||
tran_ = psb_toupper(tran)
|
||||
@@ -261,23 +255,14 @@ subroutine psb_dhalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
imode = IOR(psb_swap_send_,psb_swap_recv_)
|
||||
endif
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if (lldx < ncol) call x%reall(ncol,x%get_ncols(),info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
|
||||
@@ -132,22 +132,13 @@ subroutine psb_dhalom(x,desc_a,info,jx,ik,work,tran,mode,data)
|
||||
endif
|
||||
ldx = size(x,1)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
@@ -324,22 +315,13 @@ subroutine psb_dhalov(x,desc_a,info,work,tran,mode,data)
|
||||
endif
|
||||
ldx = size(x,1)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
|
||||
+12
-28
@@ -76,7 +76,7 @@ subroutine psb_dovrl_vect(x,desc_a,info,work,update,mode)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, k, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_, update_, mode_, ncol
|
||||
& nrow, ncol, imode, err,liwork_, data_, update_, mode
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
real(psb_dpk_),pointer :: iwork(:)
|
||||
logical :: do_swap
|
||||
@@ -106,13 +106,12 @@ subroutine psb_dovrl_vect(x,desc_a,info,work,update,mode)
|
||||
endif
|
||||
|
||||
ix = 1
|
||||
ijx = 1
|
||||
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
|
||||
ldx = x%get_nrows()
|
||||
k = 1
|
||||
|
||||
if (present(update)) then
|
||||
@@ -129,22 +128,14 @@ subroutine psb_dovrl_vect(x,desc_a,info,work,update,mode)
|
||||
do_swap = (mode_ /= 0)
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
|
||||
if ((info == 0).and.(ldx<ncol)) call x%reall(ncol,info)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
@@ -203,7 +194,7 @@ subroutine psb_dovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, k, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_, update_, mode_, ncol
|
||||
& nrow, ncol, ldx, imode, err,liwork_, data_, update_, mode
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
real(psb_dpk_),pointer :: iwork(:)
|
||||
logical :: do_swap
|
||||
@@ -239,6 +230,7 @@ subroutine psb_dovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
ldx = x%get_nrows()
|
||||
|
||||
k = 1
|
||||
|
||||
@@ -256,22 +248,14 @@ subroutine psb_dovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
do_swap = (mode_ /= 0)
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if (ldx < ncol) call x%reall(ncol,x%get_ncols(),info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
|
||||
@@ -142,20 +142,11 @@ subroutine psb_dovrlm(x,desc_a,info,jx,ik,work,update,mode)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
@@ -332,12 +323,11 @@ subroutine psb_dovrlv(x,desc_a,info,work,update,mode)
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
if(info /= 0) goto 9999
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
|
||||
@@ -132,22 +132,13 @@ subroutine psb_ehalom(x,desc_a,info,jx,ik,work,tran,mode,data)
|
||||
endif
|
||||
ldx = size(x,1)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
@@ -324,22 +315,13 @@ subroutine psb_ehalov(x,desc_a,info,work,tran,mode,data)
|
||||
endif
|
||||
ldx = size(x,1)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
|
||||
@@ -142,20 +142,11 @@ subroutine psb_eovrlm(x,desc_a,info,jx,ik,work,update,mode)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
@@ -332,12 +323,11 @@ subroutine psb_eovrlv(x,desc_a,info,work,update,mode)
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
if(info /= 0) goto 9999
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
|
||||
+14
-29
@@ -67,7 +67,7 @@ subroutine psb_ihalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_
|
||||
& nrow, ncol, lldx, imode, err, liwork,data_
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
integer(psb_ipk_),pointer :: iwork(:)
|
||||
character :: tran_
|
||||
@@ -98,11 +98,12 @@ subroutine psb_ihalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
endif
|
||||
|
||||
ix = 1
|
||||
ijx = 1
|
||||
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
lldx = x%get_nrows()
|
||||
|
||||
if (present(tran)) then
|
||||
tran_ = psb_toupper(tran)
|
||||
@@ -120,23 +121,14 @@ subroutine psb_ihalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
imode = IOR(psb_swap_send_,psb_swap_recv_)
|
||||
endif
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if ((info == 0).and.(lldx<ncol)) call x%reall(ncol,info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
@@ -208,7 +200,7 @@ subroutine psb_ihalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_
|
||||
& nrow, ncol, lldx, imode, err, liwork,data_
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
integer(psb_ipk_),pointer :: iwork(:)
|
||||
character :: tran_
|
||||
@@ -244,6 +236,8 @@ subroutine psb_ihalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
lldx = x%get_nrows()
|
||||
|
||||
if (present(tran)) then
|
||||
tran_ = psb_toupper(tran)
|
||||
@@ -261,23 +255,14 @@ subroutine psb_ihalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
imode = IOR(psb_swap_send_,psb_swap_recv_)
|
||||
endif
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if (lldx < ncol) call x%reall(ncol,x%get_ncols(),info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
|
||||
+12
-28
@@ -76,7 +76,7 @@ subroutine psb_iovrl_vect(x,desc_a,info,work,update,mode)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, k, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_, update_, mode_, ncol
|
||||
& nrow, ncol, imode, err,liwork_, data_, update_, mode
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
integer(psb_ipk_),pointer :: iwork(:)
|
||||
logical :: do_swap
|
||||
@@ -106,13 +106,12 @@ subroutine psb_iovrl_vect(x,desc_a,info,work,update,mode)
|
||||
endif
|
||||
|
||||
ix = 1
|
||||
ijx = 1
|
||||
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
|
||||
ldx = x%get_nrows()
|
||||
k = 1
|
||||
|
||||
if (present(update)) then
|
||||
@@ -129,22 +128,14 @@ subroutine psb_iovrl_vect(x,desc_a,info,work,update,mode)
|
||||
do_swap = (mode_ /= 0)
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
|
||||
if ((info == 0).and.(ldx<ncol)) call x%reall(ncol,info)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
@@ -203,7 +194,7 @@ subroutine psb_iovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, k, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_, update_, mode_, ncol
|
||||
& nrow, ncol, ldx, imode, err,liwork_, data_, update_, mode
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
integer(psb_ipk_),pointer :: iwork(:)
|
||||
logical :: do_swap
|
||||
@@ -239,6 +230,7 @@ subroutine psb_iovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
ldx = x%get_nrows()
|
||||
|
||||
k = 1
|
||||
|
||||
@@ -256,22 +248,14 @@ subroutine psb_iovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
do_swap = (mode_ /= 0)
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if (ldx < ncol) call x%reall(ncol,x%get_ncols(),info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
|
||||
+14
-29
@@ -67,7 +67,7 @@ subroutine psb_lhalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_
|
||||
& nrow, ncol, lldx, imode, err, liwork,data_
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
integer(psb_lpk_),pointer :: iwork(:)
|
||||
character :: tran_
|
||||
@@ -98,11 +98,12 @@ subroutine psb_lhalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
endif
|
||||
|
||||
ix = 1
|
||||
ijx = 1
|
||||
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
lldx = x%get_nrows()
|
||||
|
||||
if (present(tran)) then
|
||||
tran_ = psb_toupper(tran)
|
||||
@@ -120,23 +121,14 @@ subroutine psb_lhalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
imode = IOR(psb_swap_send_,psb_swap_recv_)
|
||||
endif
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if ((info == 0).and.(lldx<ncol)) call x%reall(ncol,info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
@@ -208,7 +200,7 @@ subroutine psb_lhalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_
|
||||
& nrow, ncol, lldx, imode, err, liwork,data_
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
integer(psb_lpk_),pointer :: iwork(:)
|
||||
character :: tran_
|
||||
@@ -244,6 +236,8 @@ subroutine psb_lhalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
lldx = x%get_nrows()
|
||||
|
||||
if (present(tran)) then
|
||||
tran_ = psb_toupper(tran)
|
||||
@@ -261,23 +255,14 @@ subroutine psb_lhalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
imode = IOR(psb_swap_send_,psb_swap_recv_)
|
||||
endif
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if (lldx < ncol) call x%reall(ncol,x%get_ncols(),info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
|
||||
+12
-28
@@ -76,7 +76,7 @@ subroutine psb_lovrl_vect(x,desc_a,info,work,update,mode)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, k, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_, update_, mode_, ncol
|
||||
& nrow, ncol, imode, err,liwork_, data_, update_, mode
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
integer(psb_lpk_),pointer :: iwork(:)
|
||||
logical :: do_swap
|
||||
@@ -106,13 +106,12 @@ subroutine psb_lovrl_vect(x,desc_a,info,work,update,mode)
|
||||
endif
|
||||
|
||||
ix = 1
|
||||
ijx = 1
|
||||
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
|
||||
ldx = x%get_nrows()
|
||||
k = 1
|
||||
|
||||
if (present(update)) then
|
||||
@@ -129,22 +128,14 @@ subroutine psb_lovrl_vect(x,desc_a,info,work,update,mode)
|
||||
do_swap = (mode_ /= 0)
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
|
||||
if ((info == 0).and.(ldx<ncol)) call x%reall(ncol,info)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
@@ -203,7 +194,7 @@ subroutine psb_lovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, k, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_, update_, mode_, ncol
|
||||
& nrow, ncol, ldx, imode, err,liwork_, data_, update_, mode
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
integer(psb_lpk_),pointer :: iwork(:)
|
||||
logical :: do_swap
|
||||
@@ -239,6 +230,7 @@ subroutine psb_lovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
ldx = x%get_nrows()
|
||||
|
||||
k = 1
|
||||
|
||||
@@ -256,22 +248,14 @@ subroutine psb_lovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
do_swap = (mode_ /= 0)
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if (ldx < ncol) call x%reall(ncol,x%get_ncols(),info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
|
||||
@@ -132,22 +132,13 @@ subroutine psb_mhalom(x,desc_a,info,jx,ik,work,tran,mode,data)
|
||||
endif
|
||||
ldx = size(x,1)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
@@ -324,22 +315,13 @@ subroutine psb_mhalov(x,desc_a,info,work,tran,mode,data)
|
||||
endif
|
||||
ldx = size(x,1)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
|
||||
@@ -142,20 +142,11 @@ subroutine psb_movrlm(x,desc_a,info,jx,ik,work,update,mode)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
@@ -332,12 +323,11 @@ subroutine psb_movrlv(x,desc_a,info,work,update,mode)
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
if(info /= 0) goto 9999
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
|
||||
+14
-29
@@ -67,7 +67,7 @@ subroutine psb_shalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_
|
||||
& nrow, ncol, lldx, imode, err, liwork,data_
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
real(psb_spk_),pointer :: iwork(:)
|
||||
character :: tran_
|
||||
@@ -98,11 +98,12 @@ subroutine psb_shalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
endif
|
||||
|
||||
ix = 1
|
||||
ijx = 1
|
||||
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
lldx = x%get_nrows()
|
||||
|
||||
if (present(tran)) then
|
||||
tran_ = psb_toupper(tran)
|
||||
@@ -120,23 +121,14 @@ subroutine psb_shalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
imode = IOR(psb_swap_send_,psb_swap_recv_)
|
||||
endif
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if ((info == 0).and.(lldx<ncol)) call x%reall(ncol,info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
@@ -208,7 +200,7 @@ subroutine psb_shalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_
|
||||
& nrow, ncol, lldx, imode, err, liwork,data_
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
real(psb_spk_),pointer :: iwork(:)
|
||||
character :: tran_
|
||||
@@ -244,6 +236,8 @@ subroutine psb_shalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
lldx = x%get_nrows()
|
||||
|
||||
if (present(tran)) then
|
||||
tran_ = psb_toupper(tran)
|
||||
@@ -261,23 +255,14 @@ subroutine psb_shalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
imode = IOR(psb_swap_send_,psb_swap_recv_)
|
||||
endif
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if (lldx < ncol) call x%reall(ncol,x%get_ncols(),info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
|
||||
@@ -132,22 +132,13 @@ subroutine psb_shalom(x,desc_a,info,jx,ik,work,tran,mode,data)
|
||||
endif
|
||||
ldx = size(x,1)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
@@ -324,22 +315,13 @@ subroutine psb_shalov(x,desc_a,info,work,tran,mode,data)
|
||||
endif
|
||||
ldx = size(x,1)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
|
||||
+12
-28
@@ -76,7 +76,7 @@ subroutine psb_sovrl_vect(x,desc_a,info,work,update,mode)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, k, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_, update_, mode_, ncol
|
||||
& nrow, ncol, imode, err,liwork_, data_, update_, mode
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
real(psb_spk_),pointer :: iwork(:)
|
||||
logical :: do_swap
|
||||
@@ -106,13 +106,12 @@ subroutine psb_sovrl_vect(x,desc_a,info,work,update,mode)
|
||||
endif
|
||||
|
||||
ix = 1
|
||||
ijx = 1
|
||||
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
|
||||
ldx = x%get_nrows()
|
||||
k = 1
|
||||
|
||||
if (present(update)) then
|
||||
@@ -129,22 +128,14 @@ subroutine psb_sovrl_vect(x,desc_a,info,work,update,mode)
|
||||
do_swap = (mode_ /= 0)
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
|
||||
if ((info == 0).and.(ldx<ncol)) call x%reall(ncol,info)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
@@ -203,7 +194,7 @@ subroutine psb_sovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, k, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_, update_, mode_, ncol
|
||||
& nrow, ncol, ldx, imode, err,liwork_, data_, update_, mode
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
real(psb_spk_),pointer :: iwork(:)
|
||||
logical :: do_swap
|
||||
@@ -239,6 +230,7 @@ subroutine psb_sovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
ldx = x%get_nrows()
|
||||
|
||||
k = 1
|
||||
|
||||
@@ -256,22 +248,14 @@ subroutine psb_sovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
do_swap = (mode_ /= 0)
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if (ldx < ncol) call x%reall(ncol,x%get_ncols(),info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
|
||||
@@ -142,20 +142,11 @@ subroutine psb_sovrlm(x,desc_a,info,jx,ik,work,update,mode)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
@@ -332,12 +323,11 @@ subroutine psb_sovrlv(x,desc_a,info,work,update,mode)
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
if(info /= 0) goto 9999
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
|
||||
+14
-29
@@ -67,7 +67,7 @@ subroutine psb_zhalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_
|
||||
& nrow, ncol, lldx, imode, err, liwork,data_
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
complex(psb_dpk_),pointer :: iwork(:)
|
||||
character :: tran_
|
||||
@@ -98,11 +98,12 @@ subroutine psb_zhalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
endif
|
||||
|
||||
ix = 1
|
||||
ijx = 1
|
||||
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
lldx = x%get_nrows()
|
||||
|
||||
if (present(tran)) then
|
||||
tran_ = psb_toupper(tran)
|
||||
@@ -120,23 +121,14 @@ subroutine psb_zhalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
imode = IOR(psb_swap_send_,psb_swap_recv_)
|
||||
endif
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if ((info == 0).and.(lldx<ncol)) call x%reall(ncol,info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
@@ -208,7 +200,7 @@ subroutine psb_zhalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_
|
||||
& nrow, ncol, lldx, imode, err, liwork,data_
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
complex(psb_dpk_),pointer :: iwork(:)
|
||||
character :: tran_
|
||||
@@ -244,6 +236,8 @@ subroutine psb_zhalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
lldx = x%get_nrows()
|
||||
|
||||
if (present(tran)) then
|
||||
tran_ = psb_toupper(tran)
|
||||
@@ -261,23 +255,14 @@ subroutine psb_zhalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
imode = IOR(psb_swap_send_,psb_swap_recv_)
|
||||
endif
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if (lldx < ncol) call x%reall(ncol,x%get_ncols(),info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
|
||||
@@ -132,22 +132,13 @@ subroutine psb_zhalom(x,desc_a,info,jx,ik,work,tran,mode,data)
|
||||
endif
|
||||
ldx = size(x,1)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
@@ -324,22 +315,13 @@ subroutine psb_zhalov(x,desc_a,info,work,tran,mode,data)
|
||||
endif
|
||||
ldx = size(x,1)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx,check_halo=.true.)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
liwork=nrow
|
||||
if (present(work)) then
|
||||
if(size(work) >= liwork) then
|
||||
|
||||
+12
-28
@@ -76,7 +76,7 @@ subroutine psb_zovrl_vect(x,desc_a,info,work,update,mode)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, k, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_, update_, mode_, ncol
|
||||
& nrow, ncol, imode, err,liwork_, data_, update_, mode
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
complex(psb_dpk_),pointer :: iwork(:)
|
||||
logical :: do_swap
|
||||
@@ -106,13 +106,12 @@ subroutine psb_zovrl_vect(x,desc_a,info,work,update,mode)
|
||||
endif
|
||||
|
||||
ix = 1
|
||||
ijx = 1
|
||||
|
||||
m = desc_a%get_global_rows()
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
|
||||
ldx = x%get_nrows()
|
||||
k = 1
|
||||
|
||||
if (present(update)) then
|
||||
@@ -129,22 +128,14 @@ subroutine psb_zovrl_vect(x,desc_a,info,work,update,mode)
|
||||
do_swap = (mode_ /= 0)
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
|
||||
if ((info == 0).and.(ldx<ncol)) call x%reall(ncol,info)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
@@ -203,7 +194,7 @@ subroutine psb_zovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
|
||||
! locals
|
||||
integer(psb_ipk_) :: ictxt, np, me, err_act, k, iix, jjx, &
|
||||
& nrow, imode, err, liwork,data_, update_, mode_, ncol
|
||||
& nrow, ncol, ldx, imode, err,liwork_, data_, update_, mode
|
||||
integer(psb_lpk_) :: m, n, ix, ijx
|
||||
complex(psb_dpk_),pointer :: iwork(:)
|
||||
logical :: do_swap
|
||||
@@ -239,6 +230,7 @@ subroutine psb_zovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
n = desc_a%get_global_cols()
|
||||
nrow = desc_a%get_local_rows()
|
||||
ncol = desc_a%get_local_cols()
|
||||
ldx = x%get_nrows()
|
||||
|
||||
k = 1
|
||||
|
||||
@@ -256,22 +248,14 @@ subroutine psb_zovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
do_swap = (mode_ /= 0)
|
||||
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,x%get_nrows(),ix,ijx,desc_a,info,iix,jjx)
|
||||
if (ldx < ncol) call x%reall(ncol,x%get_ncols(),info)
|
||||
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_reall'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
|
||||
@@ -142,20 +142,11 @@ subroutine psb_zovrlm(x,desc_a,info,jx,ik,work,update,mode)
|
||||
! check vector correctness
|
||||
call psb_chkvect(m,lone,ldx,ix,ijx,desc_a,info,iix,jjx)
|
||||
if(info /= psb_success_) then
|
||||
info=psb_err_from_subroutine_
|
||||
ch_err='psb_chkvect'
|
||||
info=psb_err_from_subroutine_ ; ch_err='psb_chkvect'
|
||||
call psb_errpush(info,name,a_err=ch_err)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
if (present(work)) then
|
||||
@@ -332,12 +323,11 @@ subroutine psb_zovrlv(x,desc_a,info,work,update,mode)
|
||||
|
||||
if (iix /= 1) then
|
||||
info=psb_err_ix_n1_iy_n1_unsupported_
|
||||
call psb_errpush(info,name)
|
||||
call psb_errpush(info,name)
|
||||
end if
|
||||
|
||||
if(info /= 0) goto 9999
|
||||
|
||||
err=info
|
||||
call psb_errcomm(ictxt,err)
|
||||
if(err /= 0) goto 9999
|
||||
|
||||
! check for presence/size of a work area
|
||||
liwork=ncol
|
||||
|
||||
@@ -100,8 +100,7 @@ contains
|
||||
ncl = desc_dec%get_local_cols()
|
||||
nrg = desc_dec%get_global_rows()
|
||||
ncg = desc_dec%get_global_cols()
|
||||
|
||||
|
||||
|
||||
if (m < 0) then
|
||||
info=psb_err_iarg_neg_
|
||||
int_err(1) = 1
|
||||
|
||||
Reference in New Issue
Block a user