diff --git a/base/modules/serial/psb_c_serial_mod.f90 b/base/modules/serial/psb_c_serial_mod.f90 index 9c43f3e7..9da008c6 100644 --- a/base/modules/serial/psb_c_serial_mod.f90 +++ b/base/modules/serial/psb_c_serial_mod.f90 @@ -60,6 +60,8 @@ module psb_c_serial_mod type(psb_cspmat_type), intent(out) :: c integer(psb_ipk_), intent(out) :: info end subroutine psb_cspspmm + end interface psb_spspmm + interface subroutine psb_ccsrspspmm(a,b,c,info) use psb_c_mat_mod, only : psb_c_csr_sparse_mat import :: psb_ipk_ @@ -232,6 +234,8 @@ module psb_c_serial_mod type(psb_lcspmat_type), intent(out) :: c integer(psb_ipk_), intent(out) :: info end subroutine psb_lcspspmm + end interface psb_spspmm + interface subroutine psb_lccsrspspmm(a,b,c,info) use psb_c_mat_mod, only : psb_lc_csr_sparse_mat import :: psb_ipk_ @@ -248,7 +252,7 @@ module psb_c_serial_mod type(psb_lc_csc_sparse_mat), intent(out) :: c integer(psb_ipk_), intent(out) :: info end subroutine psb_lccscspspmm - end interface psb_spspmm + end interface interface psb_symbmm subroutine psb_lcsymbmm(a,b,c,info) diff --git a/base/modules/serial/psb_d_serial_mod.f90 b/base/modules/serial/psb_d_serial_mod.f90 index 523282f5..09344b70 100644 --- a/base/modules/serial/psb_d_serial_mod.f90 +++ b/base/modules/serial/psb_d_serial_mod.f90 @@ -60,6 +60,8 @@ module psb_d_serial_mod type(psb_dspmat_type), intent(out) :: c integer(psb_ipk_), intent(out) :: info end subroutine psb_dspspmm + end interface psb_spspmm + interface subroutine psb_dcsrspspmm(a,b,c,info) use psb_d_mat_mod, only : psb_d_csr_sparse_mat import :: psb_ipk_ @@ -232,6 +234,8 @@ module psb_d_serial_mod type(psb_ldspmat_type), intent(out) :: c integer(psb_ipk_), intent(out) :: info end subroutine psb_ldspspmm + end interface psb_spspmm + interface subroutine psb_ldcsrspspmm(a,b,c,info) use psb_d_mat_mod, only : psb_ld_csr_sparse_mat import :: psb_ipk_ @@ -248,7 +252,7 @@ module psb_d_serial_mod type(psb_ld_csc_sparse_mat), intent(out) :: c integer(psb_ipk_), intent(out) :: info end subroutine psb_ldcscspspmm - end interface psb_spspmm + end interface interface psb_symbmm subroutine psb_ldsymbmm(a,b,c,info) diff --git a/base/modules/serial/psb_s_serial_mod.f90 b/base/modules/serial/psb_s_serial_mod.f90 index 81583f64..da19d9ec 100644 --- a/base/modules/serial/psb_s_serial_mod.f90 +++ b/base/modules/serial/psb_s_serial_mod.f90 @@ -60,6 +60,8 @@ module psb_s_serial_mod type(psb_sspmat_type), intent(out) :: c integer(psb_ipk_), intent(out) :: info end subroutine psb_sspspmm + end interface psb_spspmm + interface subroutine psb_scsrspspmm(a,b,c,info) use psb_s_mat_mod, only : psb_s_csr_sparse_mat import :: psb_ipk_ @@ -232,6 +234,8 @@ module psb_s_serial_mod type(psb_lsspmat_type), intent(out) :: c integer(psb_ipk_), intent(out) :: info end subroutine psb_lsspspmm + end interface psb_spspmm + interface subroutine psb_lscsrspspmm(a,b,c,info) use psb_s_mat_mod, only : psb_ls_csr_sparse_mat import :: psb_ipk_ @@ -248,7 +252,7 @@ module psb_s_serial_mod type(psb_ls_csc_sparse_mat), intent(out) :: c integer(psb_ipk_), intent(out) :: info end subroutine psb_lscscspspmm - end interface psb_spspmm + end interface interface psb_symbmm subroutine psb_lssymbmm(a,b,c,info) diff --git a/base/modules/serial/psb_z_serial_mod.f90 b/base/modules/serial/psb_z_serial_mod.f90 index dbfce00b..70a3b42c 100644 --- a/base/modules/serial/psb_z_serial_mod.f90 +++ b/base/modules/serial/psb_z_serial_mod.f90 @@ -60,6 +60,8 @@ module psb_z_serial_mod type(psb_zspmat_type), intent(out) :: c integer(psb_ipk_), intent(out) :: info end subroutine psb_zspspmm + end interface psb_spspmm + interface subroutine psb_zcsrspspmm(a,b,c,info) use psb_z_mat_mod, only : psb_z_csr_sparse_mat import :: psb_ipk_ @@ -232,6 +234,8 @@ module psb_z_serial_mod type(psb_lzspmat_type), intent(out) :: c integer(psb_ipk_), intent(out) :: info end subroutine psb_lzspspmm + end interface psb_spspmm + interface subroutine psb_lzcsrspspmm(a,b,c,info) use psb_z_mat_mod, only : psb_lz_csr_sparse_mat import :: psb_ipk_ @@ -248,7 +252,7 @@ module psb_z_serial_mod type(psb_lz_csc_sparse_mat), intent(out) :: c integer(psb_ipk_), intent(out) :: info end subroutine psb_lzcscspspmm - end interface psb_spspmm + end interface interface psb_symbmm subroutine psb_lzsymbmm(a,b,c,info) diff --git a/base/serial/psb_cspspmm.f90 b/base/serial/psb_cspspmm.f90 index 83f22012..cdd45c3a 100644 --- a/base/serial/psb_cspspmm.f90 +++ b/base/serial/psb_cspspmm.f90 @@ -37,7 +37,7 @@ ! subroutine psb_cspspmm(a,b,c,info) use psb_mat_mod - use psb_c_serial_mod, psb_protect_name => psb_cspspmm + !use psb_c_serial_mod, psb_protect_name => psb_cspspmm implicit none type(psb_cspmat_type), intent(in) :: a,b @@ -48,6 +48,24 @@ subroutine psb_cspspmm(a,b,c,info) integer(psb_ipk_) :: err_act character(len=*), parameter :: name='psb_spspmm' logical :: done_spmm + interface + subroutine psb_ccsrspspmm(a,b,c,info) + use psb_c_mat_mod, only : psb_c_csr_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_c_csr_sparse_mat), intent(in) :: a,b + type(psb_c_csr_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_ccsrspspmm + subroutine psb_ccscspspmm(a,b,c,info) + use psb_c_mat_mod, only : psb_c_csc_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_c_csc_sparse_mat), intent(in) :: a,b + type(psb_c_csc_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_ccscspspmm + end interface call psb_erractionsave(err_act) info = psb_success_ @@ -118,7 +136,7 @@ end subroutine psb_cspspmm subroutine psb_lcspspmm(a,b,c,info) use psb_mat_mod - use psb_c_serial_mod, psb_protect_name => psb_lcspspmm +! use psb_c_serial_mod, psb_protect_name => psb_lcspspmm implicit none type(psb_lcspmat_type), intent(in) :: a,b @@ -129,7 +147,25 @@ subroutine psb_lcspspmm(a,b,c,info) integer(psb_ipk_) :: err_act character(len=*), parameter :: name='psb_spspmm' logical :: done_spmm - call psb_erractionsave(err_act) + interface + subroutine psb_lccsrspspmm(a,b,c,info) + use psb_c_mat_mod, only : psb_lc_csr_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_lc_csr_sparse_mat), intent(in) :: a,b + type(psb_lc_csr_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_lccsrspspmm + subroutine psb_lccscspspmm(a,b,c,info) + use psb_c_mat_mod, only : psb_lc_csc_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_lc_csc_sparse_mat), intent(in) :: a,b + type(psb_lc_csc_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_lccscspspmm + end interface + call psb_erractionsave(err_act) info = psb_success_ if ((a%is_null()) .or.(b%is_null())) then diff --git a/base/serial/psb_dspspmm.f90 b/base/serial/psb_dspspmm.f90 index e3e203d6..82c3b3f5 100644 --- a/base/serial/psb_dspspmm.f90 +++ b/base/serial/psb_dspspmm.f90 @@ -37,7 +37,7 @@ ! subroutine psb_dspspmm(a,b,c,info) use psb_mat_mod - use psb_d_serial_mod, psb_protect_name => psb_dspspmm + !use psb_d_serial_mod, psb_protect_name => psb_dspspmm implicit none type(psb_dspmat_type), intent(in) :: a,b @@ -48,6 +48,24 @@ subroutine psb_dspspmm(a,b,c,info) integer(psb_ipk_) :: err_act character(len=*), parameter :: name='psb_spspmm' logical :: done_spmm + interface + subroutine psb_dcsrspspmm(a,b,c,info) + use psb_d_mat_mod, only : psb_d_csr_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_d_csr_sparse_mat), intent(in) :: a,b + type(psb_d_csr_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_dcsrspspmm + subroutine psb_dcscspspmm(a,b,c,info) + use psb_d_mat_mod, only : psb_d_csc_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_d_csc_sparse_mat), intent(in) :: a,b + type(psb_d_csc_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_dcscspspmm + end interface call psb_erractionsave(err_act) info = psb_success_ @@ -118,7 +136,7 @@ end subroutine psb_dspspmm subroutine psb_ldspspmm(a,b,c,info) use psb_mat_mod - use psb_d_serial_mod, psb_protect_name => psb_ldspspmm +! use psb_d_serial_mod, psb_protect_name => psb_ldspspmm implicit none type(psb_ldspmat_type), intent(in) :: a,b @@ -129,7 +147,25 @@ subroutine psb_ldspspmm(a,b,c,info) integer(psb_ipk_) :: err_act character(len=*), parameter :: name='psb_spspmm' logical :: done_spmm - call psb_erractionsave(err_act) + interface + subroutine psb_ldcsrspspmm(a,b,c,info) + use psb_d_mat_mod, only : psb_ld_csr_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_ld_csr_sparse_mat), intent(in) :: a,b + type(psb_ld_csr_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_ldcsrspspmm + subroutine psb_ldcscspspmm(a,b,c,info) + use psb_d_mat_mod, only : psb_ld_csc_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_ld_csc_sparse_mat), intent(in) :: a,b + type(psb_ld_csc_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_ldcscspspmm + end interface + call psb_erractionsave(err_act) info = psb_success_ if ((a%is_null()) .or.(b%is_null())) then diff --git a/base/serial/psb_sspspmm.f90 b/base/serial/psb_sspspmm.f90 index e1ae9af3..792fb265 100644 --- a/base/serial/psb_sspspmm.f90 +++ b/base/serial/psb_sspspmm.f90 @@ -37,7 +37,7 @@ ! subroutine psb_sspspmm(a,b,c,info) use psb_mat_mod - use psb_s_serial_mod, psb_protect_name => psb_sspspmm + !use psb_s_serial_mod, psb_protect_name => psb_sspspmm implicit none type(psb_sspmat_type), intent(in) :: a,b @@ -48,6 +48,24 @@ subroutine psb_sspspmm(a,b,c,info) integer(psb_ipk_) :: err_act character(len=*), parameter :: name='psb_spspmm' logical :: done_spmm + interface + subroutine psb_scsrspspmm(a,b,c,info) + use psb_s_mat_mod, only : psb_s_csr_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_s_csr_sparse_mat), intent(in) :: a,b + type(psb_s_csr_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_scsrspspmm + subroutine psb_scscspspmm(a,b,c,info) + use psb_s_mat_mod, only : psb_s_csc_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_s_csc_sparse_mat), intent(in) :: a,b + type(psb_s_csc_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_scscspspmm + end interface call psb_erractionsave(err_act) info = psb_success_ @@ -118,7 +136,7 @@ end subroutine psb_sspspmm subroutine psb_lsspspmm(a,b,c,info) use psb_mat_mod - use psb_s_serial_mod, psb_protect_name => psb_lsspspmm +! use psb_s_serial_mod, psb_protect_name => psb_lsspspmm implicit none type(psb_lsspmat_type), intent(in) :: a,b @@ -129,7 +147,25 @@ subroutine psb_lsspspmm(a,b,c,info) integer(psb_ipk_) :: err_act character(len=*), parameter :: name='psb_spspmm' logical :: done_spmm - call psb_erractionsave(err_act) + interface + subroutine psb_lscsrspspmm(a,b,c,info) + use psb_s_mat_mod, only : psb_ls_csr_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_ls_csr_sparse_mat), intent(in) :: a,b + type(psb_ls_csr_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_lscsrspspmm + subroutine psb_lscscspspmm(a,b,c,info) + use psb_s_mat_mod, only : psb_ls_csc_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_ls_csc_sparse_mat), intent(in) :: a,b + type(psb_ls_csc_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_lscscspspmm + end interface + call psb_erractionsave(err_act) info = psb_success_ if ((a%is_null()) .or.(b%is_null())) then diff --git a/base/serial/psb_zspspmm.f90 b/base/serial/psb_zspspmm.f90 index e7b3df44..932ae20a 100644 --- a/base/serial/psb_zspspmm.f90 +++ b/base/serial/psb_zspspmm.f90 @@ -37,7 +37,7 @@ ! subroutine psb_zspspmm(a,b,c,info) use psb_mat_mod - use psb_z_serial_mod, psb_protect_name => psb_zspspmm + !use psb_z_serial_mod, psb_protect_name => psb_zspspmm implicit none type(psb_zspmat_type), intent(in) :: a,b @@ -48,6 +48,24 @@ subroutine psb_zspspmm(a,b,c,info) integer(psb_ipk_) :: err_act character(len=*), parameter :: name='psb_spspmm' logical :: done_spmm + interface + subroutine psb_zcsrspspmm(a,b,c,info) + use psb_z_mat_mod, only : psb_z_csr_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_z_csr_sparse_mat), intent(in) :: a,b + type(psb_z_csr_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_zcsrspspmm + subroutine psb_zcscspspmm(a,b,c,info) + use psb_z_mat_mod, only : psb_z_csc_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_z_csc_sparse_mat), intent(in) :: a,b + type(psb_z_csc_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_zcscspspmm + end interface call psb_erractionsave(err_act) info = psb_success_ @@ -118,7 +136,7 @@ end subroutine psb_zspspmm subroutine psb_lzspspmm(a,b,c,info) use psb_mat_mod - use psb_z_serial_mod, psb_protect_name => psb_lzspspmm +! use psb_z_serial_mod, psb_protect_name => psb_lzspspmm implicit none type(psb_lzspmat_type), intent(in) :: a,b @@ -129,7 +147,25 @@ subroutine psb_lzspspmm(a,b,c,info) integer(psb_ipk_) :: err_act character(len=*), parameter :: name='psb_spspmm' logical :: done_spmm - call psb_erractionsave(err_act) + interface + subroutine psb_lzcsrspspmm(a,b,c,info) + use psb_z_mat_mod, only : psb_lz_csr_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_lz_csr_sparse_mat), intent(in) :: a,b + type(psb_lz_csr_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_lzcsrspspmm + subroutine psb_lzcscspspmm(a,b,c,info) + use psb_z_mat_mod, only : psb_lz_csc_sparse_mat + import :: psb_ipk_ + implicit none + class(psb_lz_csc_sparse_mat), intent(in) :: a,b + type(psb_lz_csc_sparse_mat), intent(out) :: c + integer(psb_ipk_), intent(out) :: info + end subroutine psb_lzcscspspmm + end interface + call psb_erractionsave(err_act) info = psb_success_ if ((a%is_null()) .or.(b%is_null())) then