in psblas3:

in /test/serial, update the RSB module and Makefile, temporarily.
psblas3-type-indexed
Michele Martone 15 years ago
parent 083573809d
commit d163a70313

@ -15,8 +15,11 @@ FINCLUDES=$(FMFLAG)$(LIBDIR) $(FMFLAG).
EXEDIR=./runs EXEDIR=./runs
# FIXME: martone will clean up this file from RSB_EXTRA
RSB_EXTRA=-lgomp
all: d_coo_matgen d_matgen all: d_coo_matgen d_matgen
d_coo_matgen: d_coo_matgen.o d_coo_matgen: d_coo_matgen.o rsb_mod.o
$(F90LINK) $(LINKOPT) d_coo_matgen.o -o d_coo_matgen $(PSBLAS_LIB) $(LDLIBS) $(F90LINK) $(LINKOPT) d_coo_matgen.o -o d_coo_matgen $(PSBLAS_LIB) $(LDLIBS)
/bin/mv d_coo_matgen $(EXEDIR) /bin/mv d_coo_matgen $(EXEDIR)
psb_d_cxx_impl.o d_matgen.o: psb_d_cxx_mat_mod.o psb_d_cxx_impl.o d_matgen.o: psb_d_cxx_mat_mod.o
@ -25,12 +28,14 @@ d_matgen.o: psb_d_czz_mat_mod.o
psb_d_rsb_mat_mod.o: rsb_mod.o psb_d_rsb_mat_mod.o: rsb_mod.o
psb_d_rsb_impl.o d_matgen.o: psb_d_rsb_mat_mod.o rsb_mod.o psb_d_rsb_impl.o d_matgen.o: psb_d_rsb_mat_mod.o rsb_mod.o
d_matgen: d_matgen.o psb_d_cxx_mat_mod.o psb_d_cxx_impl.o psb_d_cyy_mat_mod.o psb_d_cyy_impl.o psb_d_czz_mat_mod.o psb_d_rsb_mat_mod.o d_matgen: d_matgen.o psb_d_cxx_mat_mod.o psb_d_cxx_impl.o psb_d_cyy_mat_mod.o psb_d_cyy_impl.o psb_d_czz_mat_mod.o psb_d_rsb_mat_mod.o
$(F90LINK) $(LINKOPT) d_matgen.o psb_d_cxx_mat_mod.o psb_d_cxx_impl.o psb_d_cyy_mat_mod.o psb_d_cyy_impl.o psb_d_czz_mat_mod.o psb_d_rsb_mat_mod.o -o d_matgen $(PSBLAS_LIB) $(LDLIBS) $(F90LINK) $(LINKOPT) d_matgen.o psb_d_cxx_mat_mod.o psb_d_cxx_impl.o psb_d_cyy_mat_mod.o psb_d_cyy_impl.o psb_d_czz_mat_mod.o psb_d_rsb_mat_mod.o -o d_matgen $(PSBLAS_LIB) $(LDLIBS) $(RSB_EXTRA)
/bin/mv d_matgen $(EXEDIR) /bin/mv d_matgen $(EXEDIR)
.f90.o: .f90.o:
$(MPF90) $(F90COPT) $(FINCLUDES) $(FDEFINES) -c $< $(MPF90) $(F90COPT) $(FINCLUDES) $(FDEFINES) -c $<
check: all
cd runs && echo 5 | ./d_matgen
clean: clean:
/bin/rm -f d_coo_matgen.o d_matgen.o \ /bin/rm -f d_coo_matgen.o d_matgen.o \

@ -44,6 +44,9 @@ program d_matgen
info=psb_success_ info=psb_success_
info=rsb_init()
if(info/=psb_success_)info=psb_err_from_subroutine_
if(info/=psb_success_)goto 9999
call psb_init(ictxt) call psb_init(ictxt)
call psb_info(ictxt,iam,np) call psb_info(ictxt,iam,np)
@ -69,8 +72,8 @@ program d_matgen
t1 = psb_wtime() t1 = psb_wtime()
!call create_matrix(idim,a,b,x,desc_a,ictxt,afmt,info,acyy) !call create_matrix(idim,a,b,x,desc_a,ictxt,afmt,info,acyy)
!call create_matrix(idim,a,b,x,desc_a,ictxt,afmt,info,aczz) !call create_matrix(idim,a,b,x,desc_a,ictxt,afmt,info,aczz)
call create_matrix(idim,a,b,x,desc_a,ictxt,afmt,info,acxx) !call create_matrix(idim,a,b,x,desc_a,ictxt,afmt,info,acxx)
!call create_matrix(idim,a,b,x,desc_a,ictxt,afmt,info,arsb) call create_matrix(idim,a,b,x,desc_a,ictxt,afmt,info,arsb)
call psb_barrier(ictxt) call psb_barrier(ictxt)
t2 = psb_wtime() - t1 t2 = psb_wtime() - t1
if(info /= psb_success_) then if(info /= psb_success_) then
@ -381,6 +384,7 @@ contains
!!$ call a_n%print(19) !!$ call a_n%print(19)
t1 = psb_wtime() t1 = psb_wtime()
call a_n%cscnv(info,mold=mold) call a_n%cscnv(info,mold=mold)
stop
if(info /= psb_success_) then if(info /= psb_success_) then
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_

@ -12,6 +12,11 @@ module psb_d_rsb_mat_mod
use rsb_mod use rsb_mod
#ifdef HAVE_LIBRSB #ifdef HAVE_LIBRSB
use iso_c_binding use iso_c_binding
#endif
#if 1
#define PSBRSB_DEBUG(MSG) write(*,*) __FILE__,':',__LINE__,':',MSG
#else
#define PSBRSB_DEBUG(MSG)
#endif #endif
integer :: c_f_order=2 ! FIXME: here should use RSB_FLAG_WANT_COLUMN_MAJOR_ORDER integer :: c_f_order=2 ! FIXME: here should use RSB_FLAG_WANT_COLUMN_MAJOR_ORDER
integer :: c_f_index=256*16 ! 0x001000 ! FIXME: here should use RSB_FLAG_FORTRAN_INDICES_INTERFACE integer :: c_f_index=256*16 ! 0x001000 ! FIXME: here should use RSB_FLAG_FORTRAN_INDICES_INTERFACE
@ -74,6 +79,7 @@ module psb_d_rsb_mat_mod
function d_rsb_to_psb_info(info) result(res) function d_rsb_to_psb_info(info) result(res)
implicit none implicit none
integer :: res,info integer :: res,info
PSBRSB_DEBUG('')
res=info res=info
end function d_rsb_to_psb_info end function d_rsb_to_psb_info
@ -81,6 +87,7 @@ module psb_d_rsb_mat_mod
implicit none implicit none
class(psb_d_rsb_sparse_mat), intent(in) :: a class(psb_d_rsb_sparse_mat), intent(in) :: a
integer :: res integer :: res
PSBRSB_DEBUG('')
res=rsb_get_matrix_nnz(a%rsbmptr) res=rsb_get_matrix_nnz(a%rsbmptr)
end function d_rsb_get_nzeros end function d_rsb_get_nzeros
@ -88,6 +95,7 @@ module psb_d_rsb_mat_mod
implicit none implicit none
class(psb_d_rsb_sparse_mat), intent(in) :: a class(psb_d_rsb_sparse_mat), intent(in) :: a
character(len=5) :: res character(len=5) :: res
PSBRSB_DEBUG('')
res = 'RSB' res = 'RSB'
end function d_rsb_get_fmt end function d_rsb_get_fmt
@ -95,6 +103,7 @@ module psb_d_rsb_mat_mod
implicit none implicit none
class(psb_d_rsb_sparse_mat), intent(in) :: a class(psb_d_rsb_sparse_mat), intent(in) :: a
integer :: res integer :: res
PSBRSB_DEBUG('')
res = d_rsb_get_nzeros(a) res = d_rsb_get_nzeros(a)
end function d_rsb_get_size end function d_rsb_get_size
@ -102,6 +111,7 @@ module psb_d_rsb_mat_mod
implicit none implicit none
class(psb_d_rsb_sparse_mat), intent(in) :: a class(psb_d_rsb_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res integer(psb_long_int_k_) :: res
PSBRSB_DEBUG('')
res=rsb_sizeof(a%rsbmptr) res=rsb_sizeof(a%rsbmptr)
end function d_rsb_sizeof end function d_rsb_sizeof
@ -113,6 +123,7 @@ subroutine psb_d_rsb_csmv(alpha,a,x,beta,y,info,trans)
integer, intent(out) :: info integer, intent(out) :: info
character, optional, intent(in) :: trans character, optional, intent(in) :: trans
character :: trans_ character :: trans_
PSBRSB_DEBUG('')
info = psb_success_ info = psb_success_
if (present(trans)) then if (present(trans)) then
@ -133,6 +144,7 @@ subroutine psb_d_rsb_cssv(alpha,a,x,beta,y,info,trans)
integer, intent(out) :: info integer, intent(out) :: info
character, optional, intent(in) :: trans character, optional, intent(in) :: trans
character :: trans_ character :: trans_
PSBRSB_DEBUG('')
info = psb_success_ info = psb_success_
if (present(trans)) then if (present(trans)) then
@ -149,6 +161,7 @@ subroutine psb_d_rsb_scals(d,a,info)
class(psb_d_rsb_sparse_mat), intent(inout) :: a class(psb_d_rsb_sparse_mat), intent(inout) :: a
real(psb_dpk_), intent(in) :: d real(psb_dpk_), intent(in) :: d
integer, intent(out) :: info integer, intent(out) :: info
PSBRSB_DEBUG('')
info=d_rsb_to_psb_info(rsb_elemental_scale(a%rsbmptr,d)) info=d_rsb_to_psb_info(rsb_elemental_scale(a%rsbmptr,d))
end subroutine psb_d_rsb_scals end subroutine psb_d_rsb_scals
@ -158,6 +171,7 @@ subroutine psb_d_rsb_scal(d,a,info)
class(psb_d_rsb_sparse_mat), intent(inout) :: a class(psb_d_rsb_sparse_mat), intent(inout) :: a
real(psb_dpk_), intent(in) :: d(:) real(psb_dpk_), intent(in) :: d(:)
integer, intent(out) :: info integer, intent(out) :: info
PSBRSB_DEBUG('')
info=d_rsb_to_psb_info(rsb_scale_rows(a%rsbmptr,d)) info=d_rsb_to_psb_info(rsb_scale_rows(a%rsbmptr,d))
end subroutine psb_d_rsb_scal end subroutine psb_d_rsb_scal
@ -165,12 +179,14 @@ end subroutine psb_d_rsb_scal
implicit none implicit none
class(psb_d_rsb_sparse_mat), intent(inout) :: a class(psb_d_rsb_sparse_mat), intent(inout) :: a
type(c_ptr) :: dummy type(c_ptr) :: dummy
PSBRSB_DEBUG('')
dummy=rsb_free_sparse_matrix(a%rsbmptr) dummy=rsb_free_sparse_matrix(a%rsbmptr)
end subroutine d_rsb_free end subroutine d_rsb_free
subroutine psb_d_rsb_trim(a) subroutine psb_d_rsb_trim(a)
implicit none implicit none
class(psb_d_rsb_sparse_mat), intent(inout) :: a class(psb_d_rsb_sparse_mat), intent(inout) :: a
PSBRSB_DEBUG('')
! FIXME: this is supposed to remain empty for RSB ! FIXME: this is supposed to remain empty for RSB
end subroutine psb_d_rsb_trim end subroutine psb_d_rsb_trim
@ -182,6 +198,7 @@ end subroutine psb_d_rsb_trim
character(len=*), optional :: head character(len=*), optional :: head
integer, intent(in), optional :: ivr(:), ivc(:) integer, intent(in), optional :: ivr(:), ivc(:)
integer :: info integer :: info
PSBRSB_DEBUG('')
! FIXME: UNFINISHED ! FIXME: UNFINISHED
info=rsb_print_matrix_t(a%rsbmptr) info=rsb_print_matrix_t(a%rsbmptr)
end subroutine psb_d_rsb_print end subroutine psb_d_rsb_print
@ -190,6 +207,7 @@ end subroutine psb_d_rsb_trim
class(psb_d_rsb_sparse_mat), intent(in) :: a class(psb_d_rsb_sparse_mat), intent(in) :: a
real(psb_dpk_), intent(out) :: d(:) real(psb_dpk_), intent(out) :: d(:)
integer, intent(out) :: info integer, intent(out) :: info
PSBRSB_DEBUG('')
info=rsb_getdiag(a%rsbmptr,d) info=rsb_getdiag(a%rsbmptr,d)
end subroutine psb_d_rsb_get_diag end subroutine psb_d_rsb_get_diag
@ -198,6 +216,7 @@ function psb_d_rsb_csnmi(a) result(res)
class(psb_d_rsb_sparse_mat), intent(in) :: a class(psb_d_rsb_sparse_mat), intent(in) :: a
real(psb_dpk_) :: res real(psb_dpk_) :: res
integer :: info integer :: info
PSBRSB_DEBUG('')
info=rsb_infinity_norm(a%rsbmptr,res,rsb_psblas_trans_to_rsb_trans('N')) info=rsb_infinity_norm(a%rsbmptr,res,rsb_psblas_trans_to_rsb_trans('N'))
end function psb_d_rsb_csnmi end function psb_d_rsb_csnmi
@ -206,6 +225,7 @@ function psb_d_rsb_csnm1(a) result(res)
class(psb_d_rsb_sparse_mat), intent(in) :: a class(psb_d_rsb_sparse_mat), intent(in) :: a
real(psb_dpk_) :: res real(psb_dpk_) :: res
integer :: info integer :: info
PSBRSB_DEBUG('')
info=rsb_one_norm(a%rsbmptr,res,rsb_psblas_trans_to_rsb_trans('N')) info=rsb_one_norm(a%rsbmptr,res,rsb_psblas_trans_to_rsb_trans('N'))
end function psb_d_rsb_csnm1 end function psb_d_rsb_csnm1
@ -213,6 +233,7 @@ subroutine psb_d_rsb_aclsum(d,a)
use psb_sparse_mod use psb_sparse_mod
class(psb_d_rsb_sparse_mat), intent(in) :: a class(psb_d_rsb_sparse_mat), intent(in) :: a
real(psb_dpk_), intent(out) :: d(:) real(psb_dpk_), intent(out) :: d(:)
PSBRSB_DEBUG('')
info=rsb_absolute_columns_sums(a%rsbmptr,d) info=rsb_absolute_columns_sums(a%rsbmptr,d)
end subroutine psb_d_rsb_aclsum end subroutine psb_d_rsb_aclsum
@ -220,6 +241,7 @@ subroutine psb_d_rsb_arwsum(d,a)
use psb_sparse_mod use psb_sparse_mod
class(psb_d_rsb_sparse_mat), intent(in) :: a class(psb_d_rsb_sparse_mat), intent(in) :: a
real(psb_dpk_), intent(out) :: d(:) real(psb_dpk_), intent(out) :: d(:)
PSBRSB_DEBUG('')
info=rsb_absolute_rows_sums(a%rsbmptr,d) info=rsb_absolute_rows_sums(a%rsbmptr,d)
end subroutine psb_d_rsb_arwsum end subroutine psb_d_rsb_arwsum
@ -234,6 +256,7 @@ subroutine psb_d_rsb_csmm(alpha,a,x,beta,y,info,trans)
character :: trans_ character :: trans_
integer :: ldy,ldx,nc integer :: ldy,ldx,nc
PSBRSB_DEBUG('')
if (present(trans)) then if (present(trans)) then
trans_ = trans trans_ = trans
@ -255,6 +278,7 @@ subroutine psb_d_rsb_cssm(alpha,a,x,beta,y,info,trans)
character, optional, intent(in) :: trans character, optional, intent(in) :: trans
integer :: ldy,ldx,nc integer :: ldy,ldx,nc
character :: trans_ character :: trans_
PSBRSB_DEBUG('')
if (present(trans)) then if (present(trans)) then
trans_ = trans trans_ = trans
else else
@ -270,6 +294,7 @@ subroutine psb_d_rsb_rowsum(d,a)
class(psb_d_rsb_sparse_mat), intent(in) :: a class(psb_d_rsb_sparse_mat), intent(in) :: a
real(psb_dpk_), intent(out) :: d(:) real(psb_dpk_), intent(out) :: d(:)
integer :: info integer :: info
PSBRSB_DEBUG('')
info=d_rsb_to_psb_info(rsb_rows_sums(a%rsbmptr,d)) info=d_rsb_to_psb_info(rsb_rows_sums(a%rsbmptr,d))
end subroutine psb_d_rsb_rowsum end subroutine psb_d_rsb_rowsum
@ -278,6 +303,7 @@ subroutine psb_d_rsb_colsum(d,a)
class(psb_d_rsb_sparse_mat), intent(in) :: a class(psb_d_rsb_sparse_mat), intent(in) :: a
real(psb_dpk_), intent(out) :: d(:) real(psb_dpk_), intent(out) :: d(:)
integer :: info integer :: info
PSBRSB_DEBUG('')
info=d_rsb_to_psb_info(rsb_columns_sums(a%rsbmptr,d)) info=d_rsb_to_psb_info(rsb_columns_sums(a%rsbmptr,d))
end subroutine psb_d_rsb_colsum end subroutine psb_d_rsb_colsum
@ -290,6 +316,7 @@ subroutine psb_d_rsb_mold(a,b,info)
Integer :: err_act Integer :: err_act
character(len=20) :: name='reallocate_nz' character(len=20) :: name='reallocate_nz'
logical, parameter :: debug=.false. logical, parameter :: debug=.false.
PSBRSB_DEBUG('')
call psb_get_erraction(err_act) call psb_get_erraction(err_act)
@ -313,6 +340,7 @@ subroutine psb_d_rsb_reinit(a,clear)
class(psb_d_rsb_sparse_mat), intent(inout) :: a class(psb_d_rsb_sparse_mat), intent(inout) :: a
logical, intent(in), optional :: clear logical, intent(in), optional :: clear
Integer :: info Integer :: info
PSBRSB_DEBUG('')
info=d_rsb_to_psb_info(rsb_reinit(a%rsbmptr)) info=d_rsb_to_psb_info(rsb_reinit(a%rsbmptr))
end subroutine psb_d_rsb_reinit end subroutine psb_d_rsb_reinit
@ -323,6 +351,7 @@ end subroutine psb_d_rsb_reinit
integer, intent(in) :: idx integer, intent(in) :: idx
integer :: res integer :: res
integer :: info integer :: info
PSBRSB_DEBUG('')
res=0 res=0
res=rsb_get_rows_nnz(a%rsbmptr,idx,idx,c_f_index,info) res=rsb_get_rows_nnz(a%rsbmptr,idx,idx,c_f_index,info)
info=d_rsb_to_psb_info(info) info=d_rsb_to_psb_info(info)
@ -341,6 +370,7 @@ subroutine psb_d_cp_rsb_to_coo(a,b,info)
Integer :: nza, nr, nc,i,j,irw, idl,err_act Integer :: nza, nr, nc,i,j,irw, idl,err_act
integer :: debug_level, debug_unit integer :: debug_level, debug_unit
character(len=20) :: name character(len=20) :: name
PSBRSB_DEBUG('')
info = psb_success_ info = psb_success_
nr = a%get_nrows() nr = a%get_nrows()
nc = a%get_ncols() nc = a%get_ncols()
@ -366,6 +396,7 @@ subroutine psb_d_cp_rsb_to_fmt(a,b,info)
Integer :: nza, nr, i,j,irw, idl,err_act, nc Integer :: nza, nr, i,j,irw, idl,err_act, nc
integer :: debug_level, debug_unit integer :: debug_level, debug_unit
character(len=20) :: name character(len=20) :: name
PSBRSB_DEBUG('')
info = psb_success_ info = psb_success_
@ -399,6 +430,7 @@ subroutine psb_d_cp_rsb_from_coo(a,b,info)
Integer :: nza, nr, i,j,irw, idl,err_act, nc Integer :: nza, nr, i,j,irw, idl,err_act, nc
integer :: debug_level, debug_unit integer :: debug_level, debug_unit
character(len=20) :: name character(len=20) :: name
PSBRSB_DEBUG('')
info = psb_success_ info = psb_success_
! This is to have fix_coo called behind the scenes ! This is to have fix_coo called behind the scenes
@ -424,6 +456,7 @@ subroutine psb_d_cp_rsb_from_fmt(a,b,info)
Integer :: nz, nr, i,j,irw, idl,err_act, nc Integer :: nz, nr, i,j,irw, idl,err_act, nc
integer :: debug_level, debug_unit integer :: debug_level, debug_unit
character(len=20) :: name character(len=20) :: name
PSBRSB_DEBUG('')
info = psb_success_ info = psb_success_
@ -463,6 +496,7 @@ subroutine psb_d_rsb_csgetrow(imin,imax,a,nz,ia,ja,val,info,&
character(len=20) :: name='csget' character(len=20) :: name='csget'
logical, parameter :: debug=.false. logical, parameter :: debug=.false.
! FIXME: MISSING THE HANDLING OF OPTIONS, HERE ! FIXME: MISSING THE HANDLING OF OPTIONS, HERE
PSBRSB_DEBUG('')
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
@ -550,6 +584,7 @@ subroutine psb_d_rsb_csgetptn(imin,imax,a,nz,ia,ja,info,&
integer :: nzin_, jmin_, jmax_, err_act, i integer :: nzin_, jmin_, jmax_, err_act, i
character(len=20) :: name='csget' character(len=20) :: name='csget'
logical, parameter :: debug=.false. logical, parameter :: debug=.false.
PSBRSB_DEBUG('')
if (append) then if (append) then
nzin_ = nzin nzin_ = nzin
@ -591,6 +626,7 @@ subroutine psb_d_rsb_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
character(len=20) :: name='d_rsb_csput' character(len=20) :: name='d_rsb_csput'
logical, parameter :: debug=.false. logical, parameter :: debug=.false.
integer :: nza, i,j,k, nzl, isza, int_err(5) integer :: nza, i,j,k, nzl, isza, int_err(5)
PSBRSB_DEBUG('')
info=d_rsb_to_psb_info(rsb_update_elements(a%rsbmptr,val,ia,ja,nz,c_upd_flags)) info=d_rsb_to_psb_info(rsb_update_elements(a%rsbmptr,val,ia,ja,nz,c_upd_flags))
end subroutine psb_d_rsb_csput end subroutine psb_d_rsb_csput
@ -601,6 +637,7 @@ subroutine psb_d_mv_rsb_to_coo(a,b,info)
class(psb_d_rsb_sparse_mat), intent(inout) :: a class(psb_d_rsb_sparse_mat), intent(inout) :: a
class(psb_d_coo_sparse_mat), intent(inout) :: b class(psb_d_coo_sparse_mat), intent(inout) :: b
integer, intent(out) :: info integer, intent(out) :: info
PSBRSB_DEBUG('')
call psb_d_cp_rsb_to_coo(a,b,info) call psb_d_cp_rsb_to_coo(a,b,info)
call d_rsb_free(a) call d_rsb_free(a)
end subroutine psb_d_mv_rsb_to_coo end subroutine psb_d_mv_rsb_to_coo
@ -609,6 +646,7 @@ end subroutine psb_d_mv_rsb_to_coo
class(psb_d_rsb_sparse_mat), intent(inout) :: a class(psb_d_rsb_sparse_mat), intent(inout) :: a
class(psb_d_base_sparse_mat), intent(inout) :: b class(psb_d_base_sparse_mat), intent(inout) :: b
integer, intent(out) :: info integer, intent(out) :: info
PSBRSB_DEBUG('')
call psb_d_cp_rsb_to_fmt(a,b,info) call psb_d_cp_rsb_to_fmt(a,b,info)
call d_rsb_free(a) call d_rsb_free(a)
end subroutine psb_d_mv_rsb_to_fmt end subroutine psb_d_mv_rsb_to_fmt
@ -620,6 +658,7 @@ subroutine psb_d_mv_rsb_from_fmt(a,b,info)
class(psb_d_base_sparse_mat), intent(inout) :: b class(psb_d_base_sparse_mat), intent(inout) :: b
integer, intent(out) :: info integer, intent(out) :: info
type(psb_d_coo_sparse_mat) :: tmp type(psb_d_coo_sparse_mat) :: tmp
PSBRSB_DEBUG('')
info = psb_success_ info = psb_success_
select type (b) select type (b)
class default class default
@ -634,6 +673,7 @@ subroutine psb_d_mv_rsb_from_coo(a,b,info)
class(psb_d_rsb_sparse_mat), intent(inout) :: a class(psb_d_rsb_sparse_mat), intent(inout) :: a
class(psb_d_coo_sparse_mat), intent(inout) :: b class(psb_d_coo_sparse_mat), intent(inout) :: b
integer, intent(out) :: info integer, intent(out) :: info
PSBRSB_DEBUG('')
call a%cp_from_coo(b,info) call a%cp_from_coo(b,info)
call b%free() call b%free()
end subroutine psb_d_mv_rsb_from_coo end subroutine psb_d_mv_rsb_from_coo
@ -645,6 +685,7 @@ subroutine psb_d_rsb_cp_from(a,b)
type(psb_d_rsb_sparse_mat), intent(in) :: b type(psb_d_rsb_sparse_mat), intent(in) :: b
Integer :: info Integer :: info
type(psb_d_coo_sparse_mat) :: tmp type(psb_d_coo_sparse_mat) :: tmp
PSBRSB_DEBUG('')
call b%cp_to_coo(tmp,info) call b%cp_to_coo(tmp,info)
call a%mv_from_coo(tmp,info) call a%mv_from_coo(tmp,info)
call tmp%free() call tmp%free()
@ -657,6 +698,7 @@ subroutine psb_d_rsb_mv_from(a,b)
type(psb_d_rsb_sparse_mat), intent(inout) :: b type(psb_d_rsb_sparse_mat), intent(inout) :: b
Integer :: info Integer :: info
type(psb_d_coo_sparse_mat) :: tmp type(psb_d_coo_sparse_mat) :: tmp
PSBRSB_DEBUG('')
call b%mv_to_coo(tmp,info) call b%mv_to_coo(tmp,info)
call a%mv_from_coo(tmp,info) call a%mv_from_coo(tmp,info)
end subroutine psb_d_rsb_mv_from end subroutine psb_d_rsb_mv_from

@ -144,15 +144,15 @@ end interface
interface interface
integer(c_int) function & integer(c_int) function &
&rsb_spmv_na& &rsb_spmv_unua&
&(matrix,x,y,transa)& &(matrix,x,y,transa)&
&bind(c,name='rsb_spmv_na') &bind(c,name='rsb_spmv_unua')
use iso_c_binding use iso_c_binding
type(c_ptr), value :: matrix type(c_ptr), value :: matrix
real(c_double) :: x(*) real(c_double) :: x(*)
real(c_double) :: y(*) real(c_double) :: y(*)
integer(c_int), value :: transa integer(c_int), value :: transa
end function rsb_spmv_na end function rsb_spmv_unua
end interface end interface
interface interface
@ -170,9 +170,9 @@ end interface
interface interface
integer(c_int) function & integer(c_int) function &
&rsb_spmv_xx& &rsb_spmv_uxux&
&(matrix,x,y,alphap,betap,transa)& &(matrix,x,y,alphap,betap,transa)&
&bind(c,name='rsb_spmv_xx') &bind(c,name='rsb_spmv_uxux')
use iso_c_binding use iso_c_binding
type(c_ptr), value :: matrix type(c_ptr), value :: matrix
real(c_double) :: x(*) real(c_double) :: x(*)
@ -180,7 +180,7 @@ use iso_c_binding
real(c_double) :: alphap real(c_double) :: alphap
real(c_double) :: betap real(c_double) :: betap
integer(c_int), value :: transa integer(c_int), value :: transa
end function rsb_spmv_xx end function rsb_spmv_uxux
end interface end interface
interface interface
@ -268,48 +268,6 @@ use iso_c_binding
end function rsb_absolute_columns_sums end function rsb_absolute_columns_sums
end interface end interface
interface
integer(c_int) function &
&rsb_spmm_az&
&(matrix,mrhs,mout,bstride,cstride,nrhs,transa)&
&bind(c,name='rsb_spmm_az')
use iso_c_binding
type(c_ptr), value :: matrix
type(c_ptr), value :: mrhs
type(c_ptr), value :: mout
integer(c_int), value :: bstride
integer(c_int), value :: cstride
integer(c_int), value :: nrhs
integer(c_int), value :: transa
end function rsb_spmm_az
end interface
interface
integer(c_int) function &
&rsb_spsv_azl&
&(matrix,y,transl)&
&bind(c,name='rsb_spsv_azl')
use iso_c_binding
type(c_ptr), value :: matrix
real(c_double) :: y(*)
integer(c_int), value :: transl
end function rsb_spsv_azl
end interface
interface
integer(c_int) function &
&rsb_spsv_sxsx&
&(matrix,y,alphap,incx,transl)&
&bind(c,name='rsb_spsv_sxsx')
use iso_c_binding
type(c_ptr), value :: matrix
real(c_double) :: y(*)
real(c_double) :: alphap
integer(c_int), value :: incx
integer(c_int), value :: transl
end function rsb_spsv_sxsx
end interface
interface interface
integer(c_int) function & integer(c_int) function &
&rsb_spsv& &rsb_spsv&
@ -326,6 +284,22 @@ use iso_c_binding
end function rsb_spsv end function rsb_spsv
end interface end interface
interface
integer(c_int) function &
&rsb_spmm_az&
&(matrix,mrhs,mout,bstride,cstride,nrhs,transa)&
&bind(c,name='rsb_spmm_az')
use iso_c_binding
type(c_ptr), value :: matrix
type(c_ptr), value :: mrhs
type(c_ptr), value :: mout
integer(c_int), value :: bstride
integer(c_int), value :: cstride
integer(c_int), value :: nrhs
integer(c_int), value :: transa
end function rsb_spmm_az
end interface
interface interface
integer(c_int) function & integer(c_int) function &
&rsb_spmm_sxsx& &rsb_spmm_sxsx&
@ -381,23 +355,6 @@ use iso_c_binding
end function rsb_spsm end function rsb_spsm
end interface end interface
interface
integer(c_int) function &
&rsb_spsm_sxsx&
&(matrix,b,ldb,nrhs,transt,alphap,betap,order)&
&bind(c,name='rsb_spsm_sxsx')
use iso_c_binding
type(c_ptr), value :: matrix
real(c_double) :: b(*)
integer(c_int), value :: ldb
integer(c_int), value :: nrhs
integer(c_int), value :: transt
real(c_double) :: alphap
real(c_double) :: betap
integer(c_int), value :: order
end function rsb_spsm_sxsx
end interface
interface interface
type(c_ptr) function & type(c_ptr) function &
&rsb_matrix_sum& &rsb_matrix_sum&

Loading…
Cancel
Save