You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.6 KiB
Fortran
74 lines
1.6 KiB
Fortran
program main
|
|
use psb_spmm_test
|
|
use psb_base_mod
|
|
|
|
implicit none
|
|
|
|
! matrix stats variables
|
|
integer(psb_ipk_) :: rows, cols
|
|
|
|
! MPI variables
|
|
integer(psb_ipk_) :: my_rank, np
|
|
|
|
! parameters array
|
|
character(len=64) :: x(4),y(4)
|
|
real(psb_ipk_) :: alpha(3), beta(3)
|
|
|
|
! cycle indexes variables
|
|
integer(psb_ipk_) :: i,j,k,h,l
|
|
|
|
! Communicator variable
|
|
type(psb_ctxt_type) :: ctxt
|
|
|
|
! Initialize parameters
|
|
x(1) = "vectors/x1.mtx"
|
|
x(2) = "vectors/x2.mtx"
|
|
x(3) = "vectors/x3.mtx"
|
|
x(4) = "vectors/x4.mtx"
|
|
|
|
y(1) = "vectors/y1.mtx"
|
|
y(2) = "vectors/y2.mtx"
|
|
y(3) = "vectors/y3.mtx"
|
|
y(4) = "vectors/y4.mtx"
|
|
|
|
alpha(1) = sone
|
|
alpha(2) = -sone
|
|
alpha(3) = szero
|
|
|
|
beta(1) = sone
|
|
beta(2) = -sone
|
|
beta(3) = szero
|
|
|
|
call psb_init(ctxt)
|
|
call psb_info(ctxt,my_rank,np)
|
|
|
|
if(my_rank == psb_root_) then
|
|
write(psb_out_unit,*) 'Welcome to PSBLAS version: ',psb_version_string_
|
|
write(psb_out_unit,*) 'This is the psb_spmm_test sample program'
|
|
|
|
call read_matrix_market_size("matrix/1138_bus.mtx", rows, cols)
|
|
|
|
call generate_vectors(rows,cols)
|
|
end if
|
|
|
|
call psb_barrier(ctxt)
|
|
|
|
|
|
|
|
!! 1138_bus matrix (sparse)
|
|
do i=1,4
|
|
do j=1,4
|
|
do k=1,3
|
|
do h=1,3
|
|
call psb_spmm_kernel(mtx_file="matrix/1138_bus.mtx",x_file=x(i), y_file=y(j), &
|
|
& alpha = alpha(k), beta = beta(h), ctxt = ctxt)
|
|
end do
|
|
end do
|
|
end do
|
|
end do
|
|
|
|
|
|
call psb_exit(ctxt)
|
|
|
|
return
|
|
end program main |