mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-07 07:04:57 +00:00
Improve stopping criterion handling
This commit is contained in:
@@ -271,9 +271,20 @@ subroutine psb_crgmres_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
select case(istop_)
|
||||
case(psb_istop_ani_)
|
||||
ani = psb_spnrmi(a,desc_a,info)
|
||||
bni = psb_geamax(b,desc_a,info)
|
||||
if (present(s1)) then
|
||||
call psb_gemlt(cone,s1,b,czero,v(1),desc_a,info)
|
||||
bni = psb_geamax(v(1),desc_a,info)
|
||||
else
|
||||
bni = psb_geamax(b,desc_a,info)
|
||||
end if
|
||||
case(psb_istop_bn2_)
|
||||
bn2 = psb_genrm2(b,desc_a,info)
|
||||
if (present(s1)) then
|
||||
call psb_gemlt(cone,s1,b,czero,v(1),desc_a,info)
|
||||
bn2 = psb_genrm2(v(1),desc_a,info)
|
||||
else
|
||||
bn2 = psb_genrm2(b,desc_a,info)
|
||||
end if
|
||||
|
||||
case(psb_istop_rn2_abs_)
|
||||
! do nothing
|
||||
case(psb_istop_rrn2_)
|
||||
|
||||
@@ -271,9 +271,20 @@ subroutine psb_drgmres_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
select case(istop_)
|
||||
case(psb_istop_ani_)
|
||||
ani = psb_spnrmi(a,desc_a,info)
|
||||
bni = psb_geamax(b,desc_a,info)
|
||||
if (present(s1)) then
|
||||
call psb_gemlt(done,s1,b,dzero,v(1),desc_a,info)
|
||||
bni = psb_geamax(v(1),desc_a,info)
|
||||
else
|
||||
bni = psb_geamax(b,desc_a,info)
|
||||
end if
|
||||
case(psb_istop_bn2_)
|
||||
bn2 = psb_genrm2(b,desc_a,info)
|
||||
if (present(s1)) then
|
||||
call psb_gemlt(done,s1,b,dzero,v(1),desc_a,info)
|
||||
bn2 = psb_genrm2(v(1),desc_a,info)
|
||||
else
|
||||
bn2 = psb_genrm2(b,desc_a,info)
|
||||
end if
|
||||
|
||||
case(psb_istop_rn2_abs_)
|
||||
! do nothing
|
||||
case(psb_istop_rrn2_)
|
||||
|
||||
@@ -271,9 +271,20 @@ subroutine psb_srgmres_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
select case(istop_)
|
||||
case(psb_istop_ani_)
|
||||
ani = psb_spnrmi(a,desc_a,info)
|
||||
bni = psb_geamax(b,desc_a,info)
|
||||
if (present(s1)) then
|
||||
call psb_gemlt(sone,s1,b,szero,v(1),desc_a,info)
|
||||
bni = psb_geamax(v(1),desc_a,info)
|
||||
else
|
||||
bni = psb_geamax(b,desc_a,info)
|
||||
end if
|
||||
case(psb_istop_bn2_)
|
||||
bn2 = psb_genrm2(b,desc_a,info)
|
||||
if (present(s1)) then
|
||||
call psb_gemlt(sone,s1,b,szero,v(1),desc_a,info)
|
||||
bn2 = psb_genrm2(v(1),desc_a,info)
|
||||
else
|
||||
bn2 = psb_genrm2(b,desc_a,info)
|
||||
end if
|
||||
|
||||
case(psb_istop_rn2_abs_)
|
||||
! do nothing
|
||||
case(psb_istop_rrn2_)
|
||||
|
||||
@@ -271,9 +271,20 @@ subroutine psb_zrgmres_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
select case(istop_)
|
||||
case(psb_istop_ani_)
|
||||
ani = psb_spnrmi(a,desc_a,info)
|
||||
bni = psb_geamax(b,desc_a,info)
|
||||
if (present(s1)) then
|
||||
call psb_gemlt(zone,s1,b,zzero,v(1),desc_a,info)
|
||||
bni = psb_geamax(v(1),desc_a,info)
|
||||
else
|
||||
bni = psb_geamax(b,desc_a,info)
|
||||
end if
|
||||
case(psb_istop_bn2_)
|
||||
bn2 = psb_genrm2(b,desc_a,info)
|
||||
if (present(s1)) then
|
||||
call psb_gemlt(zone,s1,b,zzero,v(1),desc_a,info)
|
||||
bn2 = psb_genrm2(v(1),desc_a,info)
|
||||
else
|
||||
bn2 = psb_genrm2(b,desc_a,info)
|
||||
end if
|
||||
|
||||
case(psb_istop_rn2_abs_)
|
||||
! do nothing
|
||||
case(psb_istop_rrn2_)
|
||||
|
||||
Reference in New Issue
Block a user