krylov/psb_cfcg.F90
 krylov/psb_dfcg.F90
 krylov/psb_sfcg.F90
 krylov/psb_zfcg.F90
 test/fileread/runs/dfs.inp
 test/kernel/d_file_spmv.f90
 test/kernel/runs/fspmv.inp
 test/kernel/s_file_spmv.f90


Take out old variables.
psblas3-pattern
Salvatore Filippone 9 years ago
parent 4d3b8d95e5
commit 5edd786cc6

@ -123,7 +123,7 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,&
! = Local data ! = Local data
type(psb_c_vect_type) :: v, w type(psb_c_vect_type) :: v, w
type(psb_c_vect_type), dimension(0:1) :: d type(psb_c_vect_type), dimension(0:1) :: d
complex(psb_spk_) :: delta_old, alpha, tau, tau1, beta, delta complex(psb_spk_) :: alpha, tau, tau1, beta, delta
real(psb_dpk_) :: derr real(psb_dpk_) :: derr
integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_ integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_
integer(psb_ipk_) :: n_col, mglob, naux, err_act integer(psb_ipk_) :: n_col, mglob, naux, err_act
@ -239,8 +239,6 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,&
!Compute w = -Ax + b !Compute w = -Ax + b
call psb_geaxpby(-cone, v, cone, w, desc_a, info) call psb_geaxpby(-cone, v, cone, w, desc_a, info)
delta = psb_gedot(w, w, desc_a, info)
! rhs_norm = psb_gedot(b, b, desc_a, info)
!Apply the preconditioner !Apply the preconditioner
@ -248,7 +246,7 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,&
call prec%apply(w,d(idx),desc_a,info,work=aux) call prec%apply(w,d(idx),desc_a,info,work=aux)
delta_old = psb_gedot(d(idx), w, desc_a, info) delta = psb_gedot(d(idx), w, desc_a, info)
!Loop !Loop
@ -271,7 +269,7 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,&
tau = psb_gedot(d(idx), v, desc_a, info) tau = psb_gedot(d(idx), v, desc_a, info)
alpha = delta_old/tau alpha = delta/tau
!Update solution x !Update solution x
call psb_geaxpby(alpha, d(idx), cone, x, desc_a, info) call psb_geaxpby(alpha, d(idx), cone, x, desc_a, info)
!Update residual w !Update residual w
@ -292,7 +290,7 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,&
call psb_geaxpby(-beta, d(idx + 1), cone, d(idx), desc_a, info) call psb_geaxpby(-beta, d(idx + 1), cone, d(idx), desc_a, info)
endif endif
delta_old=psb_gedot(w, d(idx), desc_a, info) delta = psb_gedot(w, d(idx), desc_a, info)
if (psb_check_conv(methdname,itx ,x,w,desc_a,stopdat,info)) exit restart if (psb_check_conv(methdname,itx ,x,w,desc_a,stopdat,info)) exit restart
if (info /= psb_success_) Then if (info /= psb_success_) Then

@ -123,7 +123,7 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,&
! = Local data ! = Local data
type(psb_d_vect_type) :: v, w type(psb_d_vect_type) :: v, w
type(psb_d_vect_type), dimension(0:1) :: d type(psb_d_vect_type), dimension(0:1) :: d
real(psb_dpk_) :: delta_old, alpha, tau, tau1, beta, delta real(psb_dpk_) :: alpha, tau, tau1, beta, delta
real(psb_dpk_) :: derr real(psb_dpk_) :: derr
integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_ integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_
integer(psb_ipk_) :: n_col, mglob, naux, err_act integer(psb_ipk_) :: n_col, mglob, naux, err_act
@ -239,8 +239,6 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,&
!Compute w = -Ax + b !Compute w = -Ax + b
call psb_geaxpby(-done, v, done, w, desc_a, info) call psb_geaxpby(-done, v, done, w, desc_a, info)
delta = psb_gedot(w, w, desc_a, info)
! rhs_norm = psb_gedot(b, b, desc_a, info)
!Apply the preconditioner !Apply the preconditioner
@ -248,7 +246,7 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,&
call prec%apply(w,d(idx),desc_a,info,work=aux) call prec%apply(w,d(idx),desc_a,info,work=aux)
delta_old = psb_gedot(d(idx), w, desc_a, info) delta = psb_gedot(d(idx), w, desc_a, info)
!Loop !Loop
@ -271,7 +269,7 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,&
tau = psb_gedot(d(idx), v, desc_a, info) tau = psb_gedot(d(idx), v, desc_a, info)
alpha = delta_old/tau alpha = delta/tau
!Update solution x !Update solution x
call psb_geaxpby(alpha, d(idx), done, x, desc_a, info) call psb_geaxpby(alpha, d(idx), done, x, desc_a, info)
!Update residual w !Update residual w
@ -292,7 +290,7 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,&
call psb_geaxpby(-beta, d(idx + 1), done, d(idx), desc_a, info) call psb_geaxpby(-beta, d(idx + 1), done, d(idx), desc_a, info)
endif endif
delta_old=psb_gedot(w, d(idx), desc_a, info) delta = psb_gedot(w, d(idx), desc_a, info)
if (psb_check_conv(methdname,itx ,x,w,desc_a,stopdat,info)) exit restart if (psb_check_conv(methdname,itx ,x,w,desc_a,stopdat,info)) exit restart
if (info /= psb_success_) Then if (info /= psb_success_) Then

@ -123,7 +123,7 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,&
! = Local data ! = Local data
type(psb_s_vect_type) :: v, w type(psb_s_vect_type) :: v, w
type(psb_s_vect_type), dimension(0:1) :: d type(psb_s_vect_type), dimension(0:1) :: d
real(psb_spk_) :: delta_old, alpha, tau, tau1, beta, delta real(psb_spk_) :: alpha, tau, tau1, beta, delta
real(psb_dpk_) :: derr real(psb_dpk_) :: derr
integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_ integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_
integer(psb_ipk_) :: n_col, mglob, naux, err_act integer(psb_ipk_) :: n_col, mglob, naux, err_act
@ -239,8 +239,6 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,&
!Compute w = -Ax + b !Compute w = -Ax + b
call psb_geaxpby(-sone, v, sone, w, desc_a, info) call psb_geaxpby(-sone, v, sone, w, desc_a, info)
delta = psb_gedot(w, w, desc_a, info)
! rhs_norm = psb_gedot(b, b, desc_a, info)
!Apply the preconditioner !Apply the preconditioner
@ -248,7 +246,7 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,&
call prec%apply(w,d(idx),desc_a,info,work=aux) call prec%apply(w,d(idx),desc_a,info,work=aux)
delta_old = psb_gedot(d(idx), w, desc_a, info) delta = psb_gedot(d(idx), w, desc_a, info)
!Loop !Loop
@ -271,7 +269,7 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,&
tau = psb_gedot(d(idx), v, desc_a, info) tau = psb_gedot(d(idx), v, desc_a, info)
alpha = delta_old/tau alpha = delta/tau
!Update solution x !Update solution x
call psb_geaxpby(alpha, d(idx), sone, x, desc_a, info) call psb_geaxpby(alpha, d(idx), sone, x, desc_a, info)
!Update residual w !Update residual w
@ -292,7 +290,7 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,&
call psb_geaxpby(-beta, d(idx + 1), sone, d(idx), desc_a, info) call psb_geaxpby(-beta, d(idx + 1), sone, d(idx), desc_a, info)
endif endif
delta_old=psb_gedot(w, d(idx), desc_a, info) delta = psb_gedot(w, d(idx), desc_a, info)
if (psb_check_conv(methdname,itx ,x,w,desc_a,stopdat,info)) exit restart if (psb_check_conv(methdname,itx ,x,w,desc_a,stopdat,info)) exit restart
if (info /= psb_success_) Then if (info /= psb_success_) Then

@ -123,7 +123,7 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,&
! = Local data ! = Local data
type(psb_z_vect_type) :: v, w type(psb_z_vect_type) :: v, w
type(psb_z_vect_type), dimension(0:1) :: d type(psb_z_vect_type), dimension(0:1) :: d
complex(psb_dpk_) :: delta_old, alpha, tau, tau1, beta, delta complex(psb_dpk_) :: alpha, tau, tau1, beta, delta
real(psb_dpk_) :: derr real(psb_dpk_) :: derr
integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_ integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_
integer(psb_ipk_) :: n_col, mglob, naux, err_act integer(psb_ipk_) :: n_col, mglob, naux, err_act
@ -239,8 +239,6 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,&
!Compute w = -Ax + b !Compute w = -Ax + b
call psb_geaxpby(-zone, v, zone, w, desc_a, info) call psb_geaxpby(-zone, v, zone, w, desc_a, info)
delta = psb_gedot(w, w, desc_a, info)
! rhs_norm = psb_gedot(b, b, desc_a, info)
!Apply the preconditioner !Apply the preconditioner
@ -248,7 +246,7 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,&
call prec%apply(w,d(idx),desc_a,info,work=aux) call prec%apply(w,d(idx),desc_a,info,work=aux)
delta_old = psb_gedot(d(idx), w, desc_a, info) delta = psb_gedot(d(idx), w, desc_a, info)
!Loop !Loop
@ -271,7 +269,7 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,&
tau = psb_gedot(d(idx), v, desc_a, info) tau = psb_gedot(d(idx), v, desc_a, info)
alpha = delta_old/tau alpha = delta/tau
!Update solution x !Update solution x
call psb_geaxpby(alpha, d(idx), zone, x, desc_a, info) call psb_geaxpby(alpha, d(idx), zone, x, desc_a, info)
!Update residual w !Update residual w
@ -292,7 +290,7 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,&
call psb_geaxpby(-beta, d(idx + 1), zone, d(idx), desc_a, info) call psb_geaxpby(-beta, d(idx + 1), zone, d(idx), desc_a, info)
endif endif
delta_old=psb_gedot(w, d(idx), desc_a, info) delta = psb_gedot(w, d(idx), desc_a, info)
if (psb_check_conv(methdname,itx ,x,w,desc_a,stopdat,info)) exit restart if (psb_check_conv(methdname,itx ,x,w,desc_a,stopdat,info)) exit restart
if (info /= psb_success_) Then if (info /= psb_success_) Then

@ -1,13 +1,13 @@
11 Number of inputs 11 Number of inputs
kivap005.mtx This (and others) from: http://math.nist.gov/MatrixMarket/ or A_Z.mtx kivap005.mtx This (and others) from: http://math.nist.gov/MatrixMarket/ or
NONE sherman3_b.mtx http://www.cise.ufl.edu/research/sparse/matrices/index.html NONE sherman3_b.mtx http://www.cise.ufl.edu/research/sparse/matrices/index.html
MM File format: MM: Matrix Market HB: Harwell-Boeing. MM File format: MM: Matrix Market HB: Harwell-Boeing.
BiCGSTAB Iterative method: BiCGSTAB CGS RGMRES BiCGSTABL BICG CG CG BiCGSTAB Iterative method: BiCGSTAB CGS RGMRES BiCGSTABL BICG CG
BJAC Preconditioner NONE DIAG BJAC NONE BJAC Preconditioner NONE DIAG BJAC
CSR Storage format CSR COO JAD CSR Storage format CSR COO JAD
2 IPART: Partition method 0: BLK 2: graph (with Metis) 2 IPART: Partition method 0: BLK 2: graph (with Metis)
2 ISTOPC 2 ISTOPC
02100 ITMAX 00100 ITMAX
-1 ITRACE -1 ITRACE
002 IRST (restart for RGMRES and 002 IRST (restart for RGMRES and
1.d-6 EPS 0.0d0 1.d-9 EPS

@ -62,7 +62,7 @@ program d_file_spmv
character(len=20) :: name character(len=20) :: name
character(len=2) :: filefmt character(len=2) :: filefmt
integer(psb_ipk_), parameter :: iunit=12 integer(psb_ipk_), parameter :: iunit=12
integer(psb_ipk_), parameter :: times=10 integer(psb_ipk_), parameter :: times=20
integer(psb_ipk_) :: iparm(20) integer(psb_ipk_) :: iparm(20)
! other variables ! other variables

@ -1,4 +1,4 @@
ASIC_100ks.mtx ML_Laplace.mtx
MM MM
0 0

@ -182,7 +182,7 @@ program s_file_spmv
ivg(i) = ipv(1) ivg(i) = ipv(1)
enddo enddo
call psb_matdist(aux_a, a, ictxt, & call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,v=ivg) & desc_a,info,b_glob=b_col_glob,b=b_col,fmt=afmt,v=ivg)
else if (ipart == 2) then else if (ipart == 2) then
if (iam==psb_root_) then if (iam==psb_root_) then
@ -196,12 +196,12 @@ program s_file_spmv
call distr_mtpart(psb_root_,ictxt) call distr_mtpart(psb_root_,ictxt)
call getv_mtpart(ivg) call getv_mtpart(ivg)
call psb_matdist(aux_a, a, ictxt, & call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,v=ivg) & desc_a,info,b_glob=b_col_glob,b=b_col,fmt=afmt,v=ivg)
else else
if (iam==psb_root_) write(psb_out_unit,'("Partition type: block")') if (iam==psb_root_) write(psb_out_unit,'("Partition type: block")')
call psb_matdist(aux_a, a, ictxt, & call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,parts=part_block) & desc_a,info,b_glob=b_col_glob,b=b_col,fmt=afmt,parts=part_block)
end if end if
call psb_geall(x_col,desc_a,info) call psb_geall(x_col,desc_a,info)

Loading…
Cancel
Save