|
|
@ -129,7 +129,7 @@ subroutine psb_ccgr_vect(a,prec,b,x,eps,desc_a,info,&
|
|
|
|
type(psb_c_vect_type), allocatable :: z(:), c(:), c_scale(:)
|
|
|
|
type(psb_c_vect_type), allocatable :: z(:), c(:), c_scale(:)
|
|
|
|
type(psb_c_vect_type) :: r
|
|
|
|
type(psb_c_vect_type) :: r
|
|
|
|
|
|
|
|
|
|
|
|
real(psb_dpk_) :: r_norm, b_norm, a_norm, x_norm, derr
|
|
|
|
real(psb_dpk_) :: r_norm, b_norm, a_norm, derr
|
|
|
|
integer(psb_ipk_) :: n_col, mglob, naux, err_act
|
|
|
|
integer(psb_ipk_) :: n_col, mglob, naux, err_act
|
|
|
|
integer(psb_ipk_) :: debug_level, debug_unit
|
|
|
|
integer(psb_ipk_) :: debug_level, debug_unit
|
|
|
|
integer(psb_ipk_) :: np, me, ictxt
|
|
|
|
integer(psb_ipk_) :: np, me, ictxt
|
|
|
@ -237,10 +237,6 @@ subroutine psb_ccgr_vect(a,prec,b,x,eps,desc_a,info,&
|
|
|
|
|
|
|
|
|
|
|
|
call psb_geasb(r, desc_a,info, scratch=.true.,mold=x%v)
|
|
|
|
call psb_geasb(r, desc_a,info, scratch=.true.,mold=x%v)
|
|
|
|
|
|
|
|
|
|
|
|
x_norm = psb_normi(x, desc_a, info)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
do i =1,nl+1
|
|
|
|
do i =1,nl+1
|
|
|
|
call psb_geasb(c(i), desc_a,info, scratch=.true.,mold=x%v)
|
|
|
|
call psb_geasb(c(i), desc_a,info, scratch=.true.,mold=x%v)
|
|
|
|
call psb_geasb(z(i), desc_a,info, scratch=.true.,mold=x%v)
|
|
|
|
call psb_geasb(z(i), desc_a,info, scratch=.true.,mold=x%v)
|
|
|
@ -249,12 +245,6 @@ subroutine psb_ccgr_vect(a,prec,b,x,eps,desc_a,info,&
|
|
|
|
|
|
|
|
|
|
|
|
itx = 0
|
|
|
|
itx = 0
|
|
|
|
|
|
|
|
|
|
|
|
if (istop_ == 2) then
|
|
|
|
|
|
|
|
b_norm = psb_norm2(b, desc_a, info)
|
|
|
|
|
|
|
|
else if (istop_ == 1) then
|
|
|
|
|
|
|
|
a_norm = psb_spnrmi(a,desc_a,info)
|
|
|
|
|
|
|
|
b_norm = psb_normi(b, desc_a, info)
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
nrst = -1
|
|
|
|
nrst = -1
|
|
|
|
call psb_init_conv(methdname,istop_,itrace_,itmax_,a,b,eps,desc_a,stopdat,info)
|
|
|
|
call psb_init_conv(methdname,istop_,itrace_,itmax_,a,b,eps,desc_a,stopdat,info)
|
|
|
|
restart: do
|
|
|
|
restart: do
|
|
|
|