[FIX] Drop work= from MINRES vector calls after the development merge

The MINRES implementation merged from development calls the vector psb_spmm
and prec%apply with work=aux, but communication_v2 removed the work argument
from the vector interfaces.  Remove work=aux from psb_{c,d,s,z}minres so the
vector solvers match the communication_v2 interface; the library now builds.
communication_v2
Stack-1 1 day ago
parent a2c9238ba6
commit 026b1953c2

@ -235,7 +235,7 @@ subroutine psb_cminres_vect(a,prec,b,x,eps,desc_a,info,&
! res = b - A*x
call psb_geaxpby(cone,b,czero,res,desc_a,info)
if (info == psb_success_) call psb_spmm(-cone,a,x,cone,res,desc_a,info,work=aux)
if (info == psb_success_) call psb_spmm(-cone,a,x,cone,res,desc_a,info)
if (info /= psb_success_) then
info=psb_err_from_subroutine_non_
call psb_errpush(info,name)
@ -268,7 +268,7 @@ subroutine psb_cminres_vect(a,prec,b,x,eps,desc_a,info,&
! y = beta1 * P' * v1, with v1 the first Lanczos vector.
call psb_geaxpby(cone,res,czero,y,desc_a,info)
if (info == psb_success_) call psb_geaxpby(cone,res,czero,r1,desc_a,info)
if (info == psb_success_) call prec%apply(res,y,desc_a,info,work=aux)
if (info == psb_success_) call prec%apply(res,y,desc_a,info)
if (info /= psb_success_) then
info=psb_err_from_subroutine_non_
call psb_errpush(info,name)
@ -346,7 +346,7 @@ subroutine psb_cminres_vect(a,prec,b,x,eps,desc_a,info,&
s = cone/beta
call psb_geaxpby(s,y,czero,v,desc_a,info)
if (info == psb_success_) call psb_spmm(cone,a,v,czero,y,desc_a,info,work=aux)
if (info == psb_success_) call psb_spmm(cone,a,v,czero,y,desc_a,info)
if (itx >= 2 .and. info == psb_success_) then
call psb_geaxpby((-beta/oldb),r1,cone,y,desc_a,info)
end if
@ -366,7 +366,7 @@ subroutine psb_cminres_vect(a,prec,b,x,eps,desc_a,info,&
call psb_geaxpby((-alfa/beta),r2,cone,y,desc_a,info)
if (info == psb_success_) call psb_geaxpby(cone,r2,czero,r1,desc_a,info)
if (info == psb_success_) call psb_geaxpby(cone,y,czero,r2,desc_a,info)
if (info == psb_success_) call prec%apply(r2,y,desc_a,info,work=aux)
if (info == psb_success_) call prec%apply(r2,y,desc_a,info)
if (info /= psb_success_) then
info=psb_err_from_subroutine_non_
call psb_errpush(info,name)
@ -446,7 +446,7 @@ subroutine psb_cminres_vect(a,prec,b,x,eps,desc_a,info,&
case(psb_istop_ani_)
! Compute true residual only for the ANI stopping criterion.
call psb_geaxpby(cone,b,czero,res,desc_a,info)
if (info == psb_success_) call psb_spmm(-cone,a,x,cone,res,desc_a,info,work=aux)
if (info == psb_success_) call psb_spmm(-cone,a,x,cone,res,desc_a,info)
if (info == psb_success_) rni = psb_geamax(res,desc_a,info)
if (info == psb_success_) xni = psb_geamax(x,desc_a,info)
errnum = rni

@ -236,7 +236,7 @@ subroutine psb_dminres_vect(a,prec,b,x,eps,desc_a,info,&
! res = b - A*x
call psb_geaxpby(done,b,dzero,res,desc_a,info)
if (info == psb_success_) call psb_spmm(-done,a,x,done,res,desc_a,info,work=aux)
if (info == psb_success_) call psb_spmm(-done,a,x,done,res,desc_a,info)
if (info /= psb_success_) then
info=psb_err_from_subroutine_non_
call psb_errpush(info,name)
@ -269,7 +269,7 @@ subroutine psb_dminres_vect(a,prec,b,x,eps,desc_a,info,&
! y = beta1 * P' * v1, with v1 the first Lanczos vector.
call psb_geaxpby(done,res,dzero,y,desc_a,info)
if (info == psb_success_) call psb_geaxpby(done,res,dzero,r1,desc_a,info)
if (info == psb_success_) call prec%apply(res,y,desc_a,info,work=aux)
if (info == psb_success_) call prec%apply(res,y,desc_a,info)
if (info /= psb_success_) then
info=psb_err_from_subroutine_non_
call psb_errpush(info,name)
@ -354,7 +354,7 @@ subroutine psb_dminres_vect(a,prec,b,x,eps,desc_a,info,&
s = done/beta
call psb_geaxpby(s,y,dzero,v,desc_a,info)
if (info == psb_success_) call psb_spmm(done,a,v,dzero,y,desc_a,info,work=aux)
if (info == psb_success_) call psb_spmm(done,a,v,dzero,y,desc_a,info)
if (itx >= 2 .and. info == psb_success_) then
call psb_geaxpby((-beta/oldb),r1,done,y,desc_a,info)
end if
@ -374,7 +374,7 @@ subroutine psb_dminres_vect(a,prec,b,x,eps,desc_a,info,&
call psb_geaxpby((-alfa/beta),r2,done,y,desc_a,info)
if (info == psb_success_) call psb_geaxpby(done,r2,dzero,r1,desc_a,info)
if (info == psb_success_) call psb_geaxpby(done,y,dzero,r2,desc_a,info)
if (info == psb_success_) call prec%apply(r2,y,desc_a,info,work=aux)
if (info == psb_success_) call prec%apply(r2,y,desc_a,info)
if (info /= psb_success_) then
info=psb_err_from_subroutine_non_
call psb_errpush(info,name)
@ -461,7 +461,7 @@ subroutine psb_dminres_vect(a,prec,b,x,eps,desc_a,info,&
case(psb_istop_ani_)
! Compute true residual only for the ANI stopping criterion.
call psb_geaxpby(done,b,dzero,res,desc_a,info)
if (info == psb_success_) call psb_spmm(-done,a,x,done,res,desc_a,info,work=aux)
if (info == psb_success_) call psb_spmm(-done,a,x,done,res,desc_a,info)
if (info == psb_success_) rni = psb_geamax(res,desc_a,info)
if (info == psb_success_) xni = psb_geamax(x,desc_a,info)
errnum = rni

@ -236,7 +236,7 @@ subroutine psb_sminres_vect(a,prec,b,x,eps,desc_a,info,&
! res = b - A*x
call psb_geaxpby(sone,b,szero,res,desc_a,info)
if (info == psb_success_) call psb_spmm(-sone,a,x,sone,res,desc_a,info,work=aux)
if (info == psb_success_) call psb_spmm(-sone,a,x,sone,res,desc_a,info)
if (info /= psb_success_) then
info=psb_err_from_subroutine_non_
call psb_errpush(info,name)
@ -269,7 +269,7 @@ subroutine psb_sminres_vect(a,prec,b,x,eps,desc_a,info,&
! y = beta1 * P' * v1, with v1 the first Lanczos vector.
call psb_geaxpby(sone,res,szero,y,desc_a,info)
if (info == psb_success_) call psb_geaxpby(sone,res,szero,r1,desc_a,info)
if (info == psb_success_) call prec%apply(res,y,desc_a,info,work=aux)
if (info == psb_success_) call prec%apply(res,y,desc_a,info)
if (info /= psb_success_) then
info=psb_err_from_subroutine_non_
call psb_errpush(info,name)
@ -354,7 +354,7 @@ subroutine psb_sminres_vect(a,prec,b,x,eps,desc_a,info,&
s = sone/beta
call psb_geaxpby(s,y,szero,v,desc_a,info)
if (info == psb_success_) call psb_spmm(sone,a,v,szero,y,desc_a,info,work=aux)
if (info == psb_success_) call psb_spmm(sone,a,v,szero,y,desc_a,info)
if (itx >= 2 .and. info == psb_success_) then
call psb_geaxpby((-beta/oldb),r1,sone,y,desc_a,info)
end if
@ -374,7 +374,7 @@ subroutine psb_sminres_vect(a,prec,b,x,eps,desc_a,info,&
call psb_geaxpby((-alfa/beta),r2,sone,y,desc_a,info)
if (info == psb_success_) call psb_geaxpby(sone,r2,szero,r1,desc_a,info)
if (info == psb_success_) call psb_geaxpby(sone,y,szero,r2,desc_a,info)
if (info == psb_success_) call prec%apply(r2,y,desc_a,info,work=aux)
if (info == psb_success_) call prec%apply(r2,y,desc_a,info)
if (info /= psb_success_) then
info=psb_err_from_subroutine_non_
call psb_errpush(info,name)
@ -461,7 +461,7 @@ subroutine psb_sminres_vect(a,prec,b,x,eps,desc_a,info,&
case(psb_istop_ani_)
! Compute true residual only for the ANI stopping criterion.
call psb_geaxpby(sone,b,szero,res,desc_a,info)
if (info == psb_success_) call psb_spmm(-sone,a,x,sone,res,desc_a,info,work=aux)
if (info == psb_success_) call psb_spmm(-sone,a,x,sone,res,desc_a,info)
if (info == psb_success_) rni = psb_geamax(res,desc_a,info)
if (info == psb_success_) xni = psb_geamax(x,desc_a,info)
errnum = rni

@ -235,7 +235,7 @@ subroutine psb_zminres_vect(a,prec,b,x,eps,desc_a,info,&
! res = b - A*x
call psb_geaxpby(zone,b,zzero,res,desc_a,info)
if (info == psb_success_) call psb_spmm(-zone,a,x,zone,res,desc_a,info,work=aux)
if (info == psb_success_) call psb_spmm(-zone,a,x,zone,res,desc_a,info)
if (info /= psb_success_) then
info=psb_err_from_subroutine_non_
call psb_errpush(info,name)
@ -268,7 +268,7 @@ subroutine psb_zminres_vect(a,prec,b,x,eps,desc_a,info,&
! y = beta1 * P' * v1, with v1 the first Lanczos vector.
call psb_geaxpby(zone,res,zzero,y,desc_a,info)
if (info == psb_success_) call psb_geaxpby(zone,res,zzero,r1,desc_a,info)
if (info == psb_success_) call prec%apply(res,y,desc_a,info,work=aux)
if (info == psb_success_) call prec%apply(res,y,desc_a,info)
if (info /= psb_success_) then
info=psb_err_from_subroutine_non_
call psb_errpush(info,name)
@ -346,7 +346,7 @@ subroutine psb_zminres_vect(a,prec,b,x,eps,desc_a,info,&
s = zone/beta
call psb_geaxpby(s,y,zzero,v,desc_a,info)
if (info == psb_success_) call psb_spmm(zone,a,v,zzero,y,desc_a,info,work=aux)
if (info == psb_success_) call psb_spmm(zone,a,v,zzero,y,desc_a,info)
if (itx >= 2 .and. info == psb_success_) then
call psb_geaxpby((-beta/oldb),r1,zone,y,desc_a,info)
end if
@ -366,7 +366,7 @@ subroutine psb_zminres_vect(a,prec,b,x,eps,desc_a,info,&
call psb_geaxpby((-alfa/beta),r2,zone,y,desc_a,info)
if (info == psb_success_) call psb_geaxpby(zone,r2,zzero,r1,desc_a,info)
if (info == psb_success_) call psb_geaxpby(zone,y,zzero,r2,desc_a,info)
if (info == psb_success_) call prec%apply(r2,y,desc_a,info,work=aux)
if (info == psb_success_) call prec%apply(r2,y,desc_a,info)
if (info /= psb_success_) then
info=psb_err_from_subroutine_non_
call psb_errpush(info,name)
@ -446,7 +446,7 @@ subroutine psb_zminres_vect(a,prec,b,x,eps,desc_a,info,&
case(psb_istop_ani_)
! Compute true residual only for the ANI stopping criterion.
call psb_geaxpby(zone,b,zzero,res,desc_a,info)
if (info == psb_success_) call psb_spmm(-zone,a,x,zone,res,desc_a,info,work=aux)
if (info == psb_success_) call psb_spmm(-zone,a,x,zone,res,desc_a,info)
if (info == psb_success_) rni = psb_geamax(res,desc_a,info)
if (info == psb_success_) xni = psb_geamax(x,desc_a,info)
errnum = rni

Loading…
Cancel
Save