mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-06 22:55:08 +00:00
Merge branch 'dev-intel' into development
This commit is contained in:
@@ -193,7 +193,7 @@ subroutine psi_cswapidxm(ctxt,icomm,flag,n,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
complex(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -680,7 +680,7 @@ subroutine psi_cswapidxv(ctxt,icomm,flag,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
complex(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -197,7 +197,7 @@ subroutine psi_ctranidxm(ctxt,icomm,flag,n,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
complex(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -691,7 +691,7 @@ subroutine psi_ctranidxv(ctxt,icomm,flag,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
complex(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -193,7 +193,7 @@ subroutine psi_dswapidxm(ctxt,icomm,flag,n,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
real(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -680,7 +680,7 @@ subroutine psi_dswapidxv(ctxt,icomm,flag,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
real(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -197,7 +197,7 @@ subroutine psi_dtranidxm(ctxt,icomm,flag,n,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
real(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -691,7 +691,7 @@ subroutine psi_dtranidxv(ctxt,icomm,flag,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
real(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -193,7 +193,7 @@ subroutine psi_eswapidxm(ctxt,icomm,flag,n,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
integer(psb_epk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -680,7 +680,7 @@ subroutine psi_eswapidxv(ctxt,icomm,flag,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
integer(psb_epk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -197,7 +197,7 @@ subroutine psi_etranidxm(ctxt,icomm,flag,n,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
integer(psb_epk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -691,7 +691,7 @@ subroutine psi_etranidxv(ctxt,icomm,flag,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
integer(psb_epk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -193,7 +193,7 @@ subroutine psi_i2swapidxm(ctxt,icomm,flag,n,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
integer(psb_i2pk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -680,7 +680,7 @@ subroutine psi_i2swapidxv(ctxt,icomm,flag,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
integer(psb_i2pk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -197,7 +197,7 @@ subroutine psi_i2tranidxm(ctxt,icomm,flag,n,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
integer(psb_i2pk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -691,7 +691,7 @@ subroutine psi_i2tranidxv(ctxt,icomm,flag,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
integer(psb_i2pk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -193,7 +193,7 @@ subroutine psi_mswapidxm(ctxt,icomm,flag,n,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
integer(psb_mpk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -680,7 +680,7 @@ subroutine psi_mswapidxv(ctxt,icomm,flag,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
integer(psb_mpk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -197,7 +197,7 @@ subroutine psi_mtranidxm(ctxt,icomm,flag,n,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
integer(psb_mpk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -691,7 +691,7 @@ subroutine psi_mtranidxv(ctxt,icomm,flag,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
integer(psb_mpk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -193,7 +193,7 @@ subroutine psi_sswapidxm(ctxt,icomm,flag,n,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
real(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -680,7 +680,7 @@ subroutine psi_sswapidxv(ctxt,icomm,flag,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
real(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -197,7 +197,7 @@ subroutine psi_stranidxm(ctxt,icomm,flag,n,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
real(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -691,7 +691,7 @@ subroutine psi_stranidxv(ctxt,icomm,flag,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
real(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -193,7 +193,7 @@ subroutine psi_zswapidxm(ctxt,icomm,flag,n,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
complex(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -680,7 +680,7 @@ subroutine psi_zswapidxv(ctxt,icomm,flag,beta,y,idx, &
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
complex(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -197,7 +197,7 @@ subroutine psi_ztranidxm(ctxt,icomm,flag,n,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
complex(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
@@ -691,7 +691,7 @@ subroutine psi_ztranidxv(ctxt,icomm,flag,beta,y,idx,&
|
||||
logical, parameter :: usersend=.false.
|
||||
|
||||
complex(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf
|
||||
#if !defined(FLANG)
|
||||
#if !defined(PSB_CMP_FLANG)
|
||||
volatile :: sndbuf, rcvbuf
|
||||
#endif
|
||||
character(len=20) :: name
|
||||
|
||||
@@ -35,7 +35,7 @@ module psb_const_mod
|
||||
use iso_fortran_env
|
||||
! This is a 2-byte integer, just in case
|
||||
integer, parameter :: psb_i2pk_ = int16
|
||||
! This is always a 4-byte integer, for MPI-related stuff
|
||||
! This is always a 4-byte integer.
|
||||
integer, parameter :: psb_mpk_ = int32
|
||||
! This is always an 8-byte integer.
|
||||
integer, parameter :: psb_epk_ = int64
|
||||
@@ -51,7 +51,7 @@ module psb_const_mod
|
||||
! This is a 2-byte integer, just in case
|
||||
integer, parameter :: i2ndig=4
|
||||
integer, parameter :: psb_i2pk_ = selected_int_kind(i2ndig)
|
||||
! This is always a 4-byte integer, for MPI-related stuff
|
||||
! This is always a 4-byte integer.
|
||||
integer, parameter :: indig=8
|
||||
integer, parameter :: psb_mpk_ = selected_int_kind(indig)
|
||||
! This is always an 8-byte integer.
|
||||
|
||||
@@ -912,6 +912,23 @@ module psb_c_csc_mat_mod
|
||||
end subroutine psb_lc_csc_scals
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine psb_ccscspspmm(a,b,c,info)
|
||||
import
|
||||
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
|
||||
subroutine psb_lccscspspmm(a,b,c,info)
|
||||
import
|
||||
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
|
||||
|
||||
contains
|
||||
|
||||
! == ===================================
|
||||
|
||||
@@ -1162,6 +1162,23 @@ module psb_c_csr_mat_mod
|
||||
end subroutine psb_lc_csr_aclsum
|
||||
end interface
|
||||
|
||||
! Interfaces for SPSPMM
|
||||
interface
|
||||
subroutine psb_ccsrspspmm(a,b,c,info)
|
||||
import
|
||||
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_lccsrspspmm(a,b,c,info)
|
||||
import
|
||||
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
|
||||
end interface
|
||||
|
||||
contains
|
||||
|
||||
|
||||
@@ -78,6 +78,8 @@
|
||||
!
|
||||
module psb_c_mat_mod
|
||||
|
||||
use psb_c_vect_mod
|
||||
use psb_i_vect_mod
|
||||
use psb_c_base_mat_mod
|
||||
use psb_c_csr_mat_mod, only : psb_c_csr_sparse_mat, psb_lc_csr_sparse_mat,&
|
||||
& psb_c_ecsr_sparse_mat
|
||||
@@ -661,9 +663,8 @@ module psb_c_mat_mod
|
||||
|
||||
interface
|
||||
subroutine psb_c_csput_v(nz,ia,ja,val,a,imin,imax,jmin,jmax,info)
|
||||
use psb_c_vect_mod, only : psb_c_vect_type
|
||||
use psb_i_vect_mod, only : psb_i_vect_type
|
||||
import :: psb_ipk_, psb_lpk_, psb_cspmat_type
|
||||
import :: psb_ipk_, psb_lpk_, psb_cspmat_type, &
|
||||
& psb_c_vect_type, psb_i_vect_type
|
||||
class(psb_cspmat_type), intent(inout) :: a
|
||||
type(psb_c_vect_type), intent(inout) :: val
|
||||
type(psb_i_vect_type), intent(inout) :: ia, ja
|
||||
|
||||
@@ -60,24 +60,8 @@ module psb_c_serial_mod
|
||||
type(psb_cspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_cspspmm
|
||||
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
|
||||
|
||||
end interface psb_spspmm
|
||||
|
||||
interface psb_symbmm
|
||||
subroutine psb_csymbmm(a,b,c,info)
|
||||
use psb_c_mat_mod, only : psb_cspmat_type
|
||||
@@ -114,6 +98,16 @@ module psb_c_serial_mod
|
||||
end subroutine psb_cbase_numbmm
|
||||
end interface psb_numbmm
|
||||
|
||||
interface psb_aplusat
|
||||
subroutine psb_caplusat(ain,aout,info)
|
||||
use psb_c_mat_mod, only : psb_cspmat_type
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
type(psb_cspmat_type) :: ain, aout
|
||||
integer(psb_ipk_) :: info
|
||||
end subroutine psb_caplusat
|
||||
end interface
|
||||
|
||||
interface psb_rwextd
|
||||
subroutine psb_crwextd(nr,a,info,b,rowscale)
|
||||
use psb_c_mat_mod, only : psb_cspmat_type
|
||||
@@ -232,22 +226,6 @@ module psb_c_serial_mod
|
||||
type(psb_lcspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_lcspspmm
|
||||
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 psb_spspmm
|
||||
|
||||
interface psb_symbmm
|
||||
|
||||
@@ -912,6 +912,23 @@ module psb_d_csc_mat_mod
|
||||
end subroutine psb_ld_csc_scals
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine psb_dcscspspmm(a,b,c,info)
|
||||
import
|
||||
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
|
||||
subroutine psb_ldcscspspmm(a,b,c,info)
|
||||
import
|
||||
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
|
||||
|
||||
contains
|
||||
|
||||
! == ===================================
|
||||
|
||||
@@ -1162,6 +1162,23 @@ module psb_d_csr_mat_mod
|
||||
end subroutine psb_ld_csr_aclsum
|
||||
end interface
|
||||
|
||||
! Interfaces for SPSPMM
|
||||
interface
|
||||
subroutine psb_dcsrspspmm(a,b,c,info)
|
||||
import
|
||||
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_ldcsrspspmm(a,b,c,info)
|
||||
import
|
||||
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
|
||||
end interface
|
||||
|
||||
contains
|
||||
|
||||
|
||||
@@ -78,6 +78,8 @@
|
||||
!
|
||||
module psb_d_mat_mod
|
||||
|
||||
use psb_d_vect_mod
|
||||
use psb_i_vect_mod
|
||||
use psb_d_base_mat_mod
|
||||
use psb_d_csr_mat_mod, only : psb_d_csr_sparse_mat, psb_ld_csr_sparse_mat,&
|
||||
& psb_d_ecsr_sparse_mat
|
||||
@@ -661,9 +663,8 @@ module psb_d_mat_mod
|
||||
|
||||
interface
|
||||
subroutine psb_d_csput_v(nz,ia,ja,val,a,imin,imax,jmin,jmax,info)
|
||||
use psb_d_vect_mod, only : psb_d_vect_type
|
||||
use psb_i_vect_mod, only : psb_i_vect_type
|
||||
import :: psb_ipk_, psb_lpk_, psb_dspmat_type
|
||||
import :: psb_ipk_, psb_lpk_, psb_dspmat_type, &
|
||||
& psb_d_vect_type, psb_i_vect_type
|
||||
class(psb_dspmat_type), intent(inout) :: a
|
||||
type(psb_d_vect_type), intent(inout) :: val
|
||||
type(psb_i_vect_type), intent(inout) :: ia, ja
|
||||
|
||||
@@ -60,24 +60,8 @@ module psb_d_serial_mod
|
||||
type(psb_dspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_dspspmm
|
||||
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
|
||||
|
||||
end interface psb_spspmm
|
||||
|
||||
interface psb_symbmm
|
||||
subroutine psb_dsymbmm(a,b,c,info)
|
||||
use psb_d_mat_mod, only : psb_dspmat_type
|
||||
@@ -114,6 +98,16 @@ module psb_d_serial_mod
|
||||
end subroutine psb_dbase_numbmm
|
||||
end interface psb_numbmm
|
||||
|
||||
interface psb_aplusat
|
||||
subroutine psb_daplusat(ain,aout,info)
|
||||
use psb_d_mat_mod, only : psb_dspmat_type
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
type(psb_dspmat_type) :: ain, aout
|
||||
integer(psb_ipk_) :: info
|
||||
end subroutine psb_daplusat
|
||||
end interface
|
||||
|
||||
interface psb_rwextd
|
||||
subroutine psb_drwextd(nr,a,info,b,rowscale)
|
||||
use psb_d_mat_mod, only : psb_dspmat_type
|
||||
@@ -232,22 +226,6 @@ module psb_d_serial_mod
|
||||
type(psb_ldspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_ldspspmm
|
||||
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 psb_spspmm
|
||||
|
||||
interface psb_symbmm
|
||||
|
||||
@@ -912,6 +912,23 @@ module psb_s_csc_mat_mod
|
||||
end subroutine psb_ls_csc_scals
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine psb_scscspspmm(a,b,c,info)
|
||||
import
|
||||
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
|
||||
subroutine psb_lscscspspmm(a,b,c,info)
|
||||
import
|
||||
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
|
||||
|
||||
contains
|
||||
|
||||
! == ===================================
|
||||
|
||||
@@ -1162,6 +1162,23 @@ module psb_s_csr_mat_mod
|
||||
end subroutine psb_ls_csr_aclsum
|
||||
end interface
|
||||
|
||||
! Interfaces for SPSPMM
|
||||
interface
|
||||
subroutine psb_scsrspspmm(a,b,c,info)
|
||||
import
|
||||
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_lscsrspspmm(a,b,c,info)
|
||||
import
|
||||
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
|
||||
end interface
|
||||
|
||||
contains
|
||||
|
||||
|
||||
@@ -78,6 +78,8 @@
|
||||
!
|
||||
module psb_s_mat_mod
|
||||
|
||||
use psb_s_vect_mod
|
||||
use psb_i_vect_mod
|
||||
use psb_s_base_mat_mod
|
||||
use psb_s_csr_mat_mod, only : psb_s_csr_sparse_mat, psb_ls_csr_sparse_mat,&
|
||||
& psb_s_ecsr_sparse_mat
|
||||
@@ -661,9 +663,8 @@ module psb_s_mat_mod
|
||||
|
||||
interface
|
||||
subroutine psb_s_csput_v(nz,ia,ja,val,a,imin,imax,jmin,jmax,info)
|
||||
use psb_s_vect_mod, only : psb_s_vect_type
|
||||
use psb_i_vect_mod, only : psb_i_vect_type
|
||||
import :: psb_ipk_, psb_lpk_, psb_sspmat_type
|
||||
import :: psb_ipk_, psb_lpk_, psb_sspmat_type, &
|
||||
& psb_s_vect_type, psb_i_vect_type
|
||||
class(psb_sspmat_type), intent(inout) :: a
|
||||
type(psb_s_vect_type), intent(inout) :: val
|
||||
type(psb_i_vect_type), intent(inout) :: ia, ja
|
||||
|
||||
@@ -60,24 +60,8 @@ module psb_s_serial_mod
|
||||
type(psb_sspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_sspspmm
|
||||
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
|
||||
|
||||
end interface psb_spspmm
|
||||
|
||||
interface psb_symbmm
|
||||
subroutine psb_ssymbmm(a,b,c,info)
|
||||
use psb_s_mat_mod, only : psb_sspmat_type
|
||||
@@ -114,6 +98,16 @@ module psb_s_serial_mod
|
||||
end subroutine psb_sbase_numbmm
|
||||
end interface psb_numbmm
|
||||
|
||||
interface psb_aplusat
|
||||
subroutine psb_saplusat(ain,aout,info)
|
||||
use psb_s_mat_mod, only : psb_sspmat_type
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
type(psb_sspmat_type) :: ain, aout
|
||||
integer(psb_ipk_) :: info
|
||||
end subroutine psb_saplusat
|
||||
end interface
|
||||
|
||||
interface psb_rwextd
|
||||
subroutine psb_srwextd(nr,a,info,b,rowscale)
|
||||
use psb_s_mat_mod, only : psb_sspmat_type
|
||||
@@ -232,22 +226,6 @@ module psb_s_serial_mod
|
||||
type(psb_lsspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_lsspspmm
|
||||
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 psb_spspmm
|
||||
|
||||
interface psb_symbmm
|
||||
|
||||
@@ -912,6 +912,23 @@ module psb_z_csc_mat_mod
|
||||
end subroutine psb_lz_csc_scals
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine psb_zcscspspmm(a,b,c,info)
|
||||
import
|
||||
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
|
||||
subroutine psb_lzcscspspmm(a,b,c,info)
|
||||
import
|
||||
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
|
||||
|
||||
contains
|
||||
|
||||
! == ===================================
|
||||
|
||||
@@ -1162,6 +1162,23 @@ module psb_z_csr_mat_mod
|
||||
end subroutine psb_lz_csr_aclsum
|
||||
end interface
|
||||
|
||||
! Interfaces for SPSPMM
|
||||
interface
|
||||
subroutine psb_zcsrspspmm(a,b,c,info)
|
||||
import
|
||||
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_lzcsrspspmm(a,b,c,info)
|
||||
import
|
||||
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
|
||||
end interface
|
||||
|
||||
contains
|
||||
|
||||
|
||||
@@ -78,6 +78,8 @@
|
||||
!
|
||||
module psb_z_mat_mod
|
||||
|
||||
use psb_z_vect_mod
|
||||
use psb_i_vect_mod
|
||||
use psb_z_base_mat_mod
|
||||
use psb_z_csr_mat_mod, only : psb_z_csr_sparse_mat, psb_lz_csr_sparse_mat,&
|
||||
& psb_z_ecsr_sparse_mat
|
||||
@@ -661,9 +663,8 @@ module psb_z_mat_mod
|
||||
|
||||
interface
|
||||
subroutine psb_z_csput_v(nz,ia,ja,val,a,imin,imax,jmin,jmax,info)
|
||||
use psb_z_vect_mod, only : psb_z_vect_type
|
||||
use psb_i_vect_mod, only : psb_i_vect_type
|
||||
import :: psb_ipk_, psb_lpk_, psb_zspmat_type
|
||||
import :: psb_ipk_, psb_lpk_, psb_zspmat_type, &
|
||||
& psb_z_vect_type, psb_i_vect_type
|
||||
class(psb_zspmat_type), intent(inout) :: a
|
||||
type(psb_z_vect_type), intent(inout) :: val
|
||||
type(psb_i_vect_type), intent(inout) :: ia, ja
|
||||
|
||||
@@ -60,24 +60,8 @@ module psb_z_serial_mod
|
||||
type(psb_zspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_zspspmm
|
||||
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
|
||||
|
||||
end interface psb_spspmm
|
||||
|
||||
interface psb_symbmm
|
||||
subroutine psb_zsymbmm(a,b,c,info)
|
||||
use psb_z_mat_mod, only : psb_zspmat_type
|
||||
@@ -114,6 +98,16 @@ module psb_z_serial_mod
|
||||
end subroutine psb_zbase_numbmm
|
||||
end interface psb_numbmm
|
||||
|
||||
interface psb_aplusat
|
||||
subroutine psb_zaplusat(ain,aout,info)
|
||||
use psb_z_mat_mod, only : psb_zspmat_type
|
||||
import :: psb_ipk_
|
||||
implicit none
|
||||
type(psb_zspmat_type) :: ain, aout
|
||||
integer(psb_ipk_) :: info
|
||||
end subroutine psb_zaplusat
|
||||
end interface
|
||||
|
||||
interface psb_rwextd
|
||||
subroutine psb_zrwextd(nr,a,info,b,rowscale)
|
||||
use psb_z_mat_mod, only : psb_zspmat_type
|
||||
@@ -232,22 +226,6 @@ module psb_z_serial_mod
|
||||
type(psb_lzspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_lzspspmm
|
||||
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 psb_spspmm
|
||||
|
||||
interface psb_symbmm
|
||||
|
||||
@@ -11,6 +11,7 @@ FOBJS = psb_lsame.o psi_m_serial_impl.o psi_e_serial_impl.o \
|
||||
smmp.o lsmmp.o \
|
||||
psb_sgeprt.o psb_dgeprt.o psb_cgeprt.o psb_zgeprt.o\
|
||||
psb_spdot_srtd.o psb_aspxpby.o psb_spge_dot.o\
|
||||
psb_saplusat.o psb_daplusat.o psb_caplusat.o psb_zaplusat.o \
|
||||
psb_samax_s.o psb_damax_s.o psb_camax_s.o psb_zamax_s.o \
|
||||
psb_sasum_s.o psb_dasum_s.o psb_casum_s.o psb_zasum_s.o
|
||||
|
||||
|
||||
@@ -2824,8 +2824,8 @@ subroutine psb_c_csc_print(iout,a,iv,head,ivr,ivc)
|
||||
end subroutine psb_c_csc_print
|
||||
|
||||
subroutine psb_ccscspspmm(a,b,c,info)
|
||||
use psb_c_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_ccscspspmm
|
||||
use psb_c_csc_mat_mod, psb_protect_name => psb_ccscspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
@@ -4664,8 +4664,8 @@ subroutine psb_lc_csc_print(iout,a,iv,head,ivr,ivc)
|
||||
end subroutine psb_lc_csc_print
|
||||
|
||||
subroutine psb_lccscspspmm(a,b,c,info)
|
||||
use psb_c_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_lccscspspmm
|
||||
use psb_c_csc_mat_mod, psb_protect_name => psb_lccscspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
|
||||
@@ -3657,8 +3657,8 @@ end subroutine psb_c_cp_csr_from_fmt
|
||||
|
||||
#if defined(PSB_OPENMP)
|
||||
subroutine psb_ccsrspspmm(a,b,c,info)
|
||||
use psb_c_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_ccsrspspmm
|
||||
use psb_c_csr_mat_mod, psb_protect_name => psb_ccsrspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
@@ -4204,8 +4204,8 @@ end subroutine psb_ccsrspspmm
|
||||
#else
|
||||
|
||||
subroutine psb_ccsrspspmm(a,b,c,info)
|
||||
use psb_c_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_ccsrspspmm
|
||||
use psb_c_csr_mat_mod, psb_protect_name => psb_ccsrspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
@@ -6580,8 +6580,8 @@ end subroutine psb_lc_cp_csr_from_fmt
|
||||
!!$end subroutine psb_lc_csr_clean_zeros
|
||||
|
||||
subroutine psb_lccsrspspmm(a,b,c,info)
|
||||
use psb_c_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_lccsrspspmm
|
||||
use psb_c_csr_mat_mod, psb_protect_name => psb_lccsrspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
|
||||
@@ -2824,8 +2824,8 @@ subroutine psb_d_csc_print(iout,a,iv,head,ivr,ivc)
|
||||
end subroutine psb_d_csc_print
|
||||
|
||||
subroutine psb_dcscspspmm(a,b,c,info)
|
||||
use psb_d_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_dcscspspmm
|
||||
use psb_d_csc_mat_mod, psb_protect_name => psb_dcscspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
@@ -4664,8 +4664,8 @@ subroutine psb_ld_csc_print(iout,a,iv,head,ivr,ivc)
|
||||
end subroutine psb_ld_csc_print
|
||||
|
||||
subroutine psb_ldcscspspmm(a,b,c,info)
|
||||
use psb_d_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_ldcscspspmm
|
||||
use psb_d_csc_mat_mod, psb_protect_name => psb_ldcscspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
|
||||
@@ -3657,8 +3657,8 @@ end subroutine psb_d_cp_csr_from_fmt
|
||||
|
||||
#if defined(PSB_OPENMP)
|
||||
subroutine psb_dcsrspspmm(a,b,c,info)
|
||||
use psb_d_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_dcsrspspmm
|
||||
use psb_d_csr_mat_mod, psb_protect_name => psb_dcsrspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
@@ -4204,8 +4204,8 @@ end subroutine psb_dcsrspspmm
|
||||
#else
|
||||
|
||||
subroutine psb_dcsrspspmm(a,b,c,info)
|
||||
use psb_d_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_dcsrspspmm
|
||||
use psb_d_csr_mat_mod, psb_protect_name => psb_dcsrspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
@@ -6580,8 +6580,8 @@ end subroutine psb_ld_cp_csr_from_fmt
|
||||
!!$end subroutine psb_ld_csr_clean_zeros
|
||||
|
||||
subroutine psb_ldcsrspspmm(a,b,c,info)
|
||||
use psb_d_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_ldcsrspspmm
|
||||
use psb_d_csr_mat_mod, psb_protect_name => psb_ldcsrspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
|
||||
@@ -2824,8 +2824,8 @@ subroutine psb_s_csc_print(iout,a,iv,head,ivr,ivc)
|
||||
end subroutine psb_s_csc_print
|
||||
|
||||
subroutine psb_scscspspmm(a,b,c,info)
|
||||
use psb_s_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_scscspspmm
|
||||
use psb_s_csc_mat_mod, psb_protect_name => psb_scscspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
@@ -4664,8 +4664,8 @@ subroutine psb_ls_csc_print(iout,a,iv,head,ivr,ivc)
|
||||
end subroutine psb_ls_csc_print
|
||||
|
||||
subroutine psb_lscscspspmm(a,b,c,info)
|
||||
use psb_s_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_lscscspspmm
|
||||
use psb_s_csc_mat_mod, psb_protect_name => psb_lscscspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
|
||||
@@ -3657,8 +3657,8 @@ end subroutine psb_s_cp_csr_from_fmt
|
||||
|
||||
#if defined(PSB_OPENMP)
|
||||
subroutine psb_scsrspspmm(a,b,c,info)
|
||||
use psb_s_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_scsrspspmm
|
||||
use psb_s_csr_mat_mod, psb_protect_name => psb_scsrspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
@@ -4204,8 +4204,8 @@ end subroutine psb_scsrspspmm
|
||||
#else
|
||||
|
||||
subroutine psb_scsrspspmm(a,b,c,info)
|
||||
use psb_s_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_scsrspspmm
|
||||
use psb_s_csr_mat_mod, psb_protect_name => psb_scsrspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
@@ -6580,8 +6580,8 @@ end subroutine psb_ls_cp_csr_from_fmt
|
||||
!!$end subroutine psb_ls_csr_clean_zeros
|
||||
|
||||
subroutine psb_lscsrspspmm(a,b,c,info)
|
||||
use psb_s_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_lscsrspspmm
|
||||
use psb_s_csr_mat_mod, psb_protect_name => psb_lscsrspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
|
||||
@@ -2824,8 +2824,8 @@ subroutine psb_z_csc_print(iout,a,iv,head,ivr,ivc)
|
||||
end subroutine psb_z_csc_print
|
||||
|
||||
subroutine psb_zcscspspmm(a,b,c,info)
|
||||
use psb_z_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_zcscspspmm
|
||||
use psb_z_csc_mat_mod, psb_protect_name => psb_zcscspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
@@ -4664,8 +4664,8 @@ subroutine psb_lz_csc_print(iout,a,iv,head,ivr,ivc)
|
||||
end subroutine psb_lz_csc_print
|
||||
|
||||
subroutine psb_lzcscspspmm(a,b,c,info)
|
||||
use psb_z_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_lzcscspspmm
|
||||
use psb_z_csc_mat_mod, psb_protect_name => psb_lzcscspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
|
||||
@@ -3657,8 +3657,8 @@ end subroutine psb_z_cp_csr_from_fmt
|
||||
|
||||
#if defined(PSB_OPENMP)
|
||||
subroutine psb_zcsrspspmm(a,b,c,info)
|
||||
use psb_z_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_zcsrspspmm
|
||||
use psb_z_csr_mat_mod, psb_protect_name => psb_zcsrspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
@@ -4204,8 +4204,8 @@ end subroutine psb_zcsrspspmm
|
||||
#else
|
||||
|
||||
subroutine psb_zcsrspspmm(a,b,c,info)
|
||||
use psb_z_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_zcsrspspmm
|
||||
use psb_z_csr_mat_mod, psb_protect_name => psb_zcsrspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
@@ -6580,8 +6580,8 @@ end subroutine psb_lz_cp_csr_from_fmt
|
||||
!!$end subroutine psb_lz_csr_clean_zeros
|
||||
|
||||
subroutine psb_lzcsrspspmm(a,b,c,info)
|
||||
use psb_z_mat_mod
|
||||
use psb_serial_mod, psb_protect_name => psb_lzcsrspspmm
|
||||
use psb_z_csr_mat_mod, psb_protect_name => psb_lzcsrspspmm
|
||||
use psb_serial_mod
|
||||
|
||||
implicit none
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
subroutine psb_caplusat(ain,aout,info)
|
||||
use psb_c_mat_mod
|
||||
|
||||
implicit none
|
||||
type(psb_cspmat_type), intent(inout) :: ain
|
||||
type(psb_cspmat_type), intent(out) :: aout
|
||||
integer(psb_ipk_) :: info
|
||||
|
||||
type(psb_c_coo_sparse_mat) :: acoo1, acoo2
|
||||
integer(psb_ipk_) :: nr, nc, nz1, nz2
|
||||
integer(psb_ipk_) :: err_act
|
||||
character(len=20) :: name, ch_err
|
||||
|
||||
name='psb_caplusat'
|
||||
info = psb_success_
|
||||
call psb_erractionsave(err_act)
|
||||
|
||||
|
||||
|
||||
nr = ain%get_nrows()
|
||||
nc = ain%get_ncols()
|
||||
|
||||
if (nr /= nc) then
|
||||
info=psb_err_internal_error_
|
||||
call psb_errpush(info,name)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
call ain%cp_to(acoo1)
|
||||
call acoo1%cp_to_coo(acoo2,info)
|
||||
nz1 = acoo1%get_nzeros()
|
||||
nz2 = acoo2%get_nzeros()
|
||||
call acoo1%reallocate(nz1+nz2)
|
||||
acoo1%ia(nz1+1:nz1+nz2) = acoo2%ja(1:nz2)
|
||||
acoo1%ja(nz1+1:nz1+nz2) = acoo2%ia(1:nz2)
|
||||
acoo1%val(nz1+1:nz1+nz2) = acoo2%val(1:nz2)
|
||||
call acoo1%set_nrows(nr)
|
||||
call acoo1%set_ncols(nr)
|
||||
call acoo1%set_nzeros(nz1+nz2)
|
||||
call aout%cp_from(acoo1)
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
return
|
||||
|
||||
9999 call psb_error_handler(err_act)
|
||||
|
||||
return
|
||||
|
||||
|
||||
end subroutine psb_caplusat
|
||||
@@ -37,9 +37,9 @@
|
||||
!
|
||||
subroutine psb_cspspmm(a,b,c,info)
|
||||
use psb_mat_mod
|
||||
use psb_c_csr_mat_mod
|
||||
use psb_c_csc_mat_mod
|
||||
use psb_c_serial_mod, psb_protect_name => psb_cspspmm
|
||||
implicit none
|
||||
|
||||
type(psb_cspmat_type), intent(in) :: a,b
|
||||
type(psb_cspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
@@ -48,6 +48,8 @@ subroutine psb_cspspmm(a,b,c,info)
|
||||
integer(psb_ipk_) :: err_act
|
||||
character(len=*), parameter :: name='psb_spspmm'
|
||||
logical :: done_spmm
|
||||
|
||||
|
||||
call psb_erractionsave(err_act)
|
||||
info = psb_success_
|
||||
|
||||
@@ -118,6 +120,8 @@ end subroutine psb_cspspmm
|
||||
|
||||
subroutine psb_lcspspmm(a,b,c,info)
|
||||
use psb_mat_mod
|
||||
use psb_c_csr_mat_mod
|
||||
use psb_c_csc_mat_mod
|
||||
use psb_c_serial_mod, psb_protect_name => psb_lcspspmm
|
||||
implicit none
|
||||
|
||||
@@ -129,6 +133,7 @@ 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)
|
||||
info = psb_success_
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
subroutine psb_daplusat(ain,aout,info)
|
||||
use psb_d_mat_mod
|
||||
|
||||
implicit none
|
||||
type(psb_dspmat_type), intent(inout) :: ain
|
||||
type(psb_dspmat_type), intent(out) :: aout
|
||||
integer(psb_ipk_) :: info
|
||||
|
||||
type(psb_d_coo_sparse_mat) :: acoo1, acoo2
|
||||
integer(psb_ipk_) :: nr, nc, nz1, nz2
|
||||
integer(psb_ipk_) :: err_act
|
||||
character(len=20) :: name, ch_err
|
||||
|
||||
name='psb_daplusat'
|
||||
info = psb_success_
|
||||
call psb_erractionsave(err_act)
|
||||
|
||||
|
||||
|
||||
nr = ain%get_nrows()
|
||||
nc = ain%get_ncols()
|
||||
|
||||
if (nr /= nc) then
|
||||
info=psb_err_internal_error_
|
||||
call psb_errpush(info,name)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
call ain%cp_to(acoo1)
|
||||
call acoo1%cp_to_coo(acoo2,info)
|
||||
nz1 = acoo1%get_nzeros()
|
||||
nz2 = acoo2%get_nzeros()
|
||||
call acoo1%reallocate(nz1+nz2)
|
||||
acoo1%ia(nz1+1:nz1+nz2) = acoo2%ja(1:nz2)
|
||||
acoo1%ja(nz1+1:nz1+nz2) = acoo2%ia(1:nz2)
|
||||
acoo1%val(nz1+1:nz1+nz2) = acoo2%val(1:nz2)
|
||||
call acoo1%set_nrows(nr)
|
||||
call acoo1%set_ncols(nr)
|
||||
call acoo1%set_nzeros(nz1+nz2)
|
||||
call aout%cp_from(acoo1)
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
return
|
||||
|
||||
9999 call psb_error_handler(err_act)
|
||||
|
||||
return
|
||||
|
||||
|
||||
end subroutine psb_daplusat
|
||||
@@ -37,9 +37,9 @@
|
||||
!
|
||||
subroutine psb_dspspmm(a,b,c,info)
|
||||
use psb_mat_mod
|
||||
use psb_d_csr_mat_mod
|
||||
use psb_d_csc_mat_mod
|
||||
use psb_d_serial_mod, psb_protect_name => psb_dspspmm
|
||||
implicit none
|
||||
|
||||
type(psb_dspmat_type), intent(in) :: a,b
|
||||
type(psb_dspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
@@ -48,6 +48,8 @@ subroutine psb_dspspmm(a,b,c,info)
|
||||
integer(psb_ipk_) :: err_act
|
||||
character(len=*), parameter :: name='psb_spspmm'
|
||||
logical :: done_spmm
|
||||
|
||||
|
||||
call psb_erractionsave(err_act)
|
||||
info = psb_success_
|
||||
|
||||
@@ -118,6 +120,8 @@ end subroutine psb_dspspmm
|
||||
|
||||
subroutine psb_ldspspmm(a,b,c,info)
|
||||
use psb_mat_mod
|
||||
use psb_d_csr_mat_mod
|
||||
use psb_d_csc_mat_mod
|
||||
use psb_d_serial_mod, psb_protect_name => psb_ldspspmm
|
||||
implicit none
|
||||
|
||||
@@ -129,6 +133,7 @@ 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)
|
||||
info = psb_success_
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
subroutine psb_saplusat(ain,aout,info)
|
||||
use psb_s_mat_mod
|
||||
|
||||
implicit none
|
||||
type(psb_sspmat_type), intent(inout) :: ain
|
||||
type(psb_sspmat_type), intent(out) :: aout
|
||||
integer(psb_ipk_) :: info
|
||||
|
||||
type(psb_s_coo_sparse_mat) :: acoo1, acoo2
|
||||
integer(psb_ipk_) :: nr, nc, nz1, nz2
|
||||
integer(psb_ipk_) :: err_act
|
||||
character(len=20) :: name, ch_err
|
||||
|
||||
name='psb_saplusat'
|
||||
info = psb_success_
|
||||
call psb_erractionsave(err_act)
|
||||
|
||||
|
||||
|
||||
nr = ain%get_nrows()
|
||||
nc = ain%get_ncols()
|
||||
|
||||
if (nr /= nc) then
|
||||
info=psb_err_internal_error_
|
||||
call psb_errpush(info,name)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
call ain%cp_to(acoo1)
|
||||
call acoo1%cp_to_coo(acoo2,info)
|
||||
nz1 = acoo1%get_nzeros()
|
||||
nz2 = acoo2%get_nzeros()
|
||||
call acoo1%reallocate(nz1+nz2)
|
||||
acoo1%ia(nz1+1:nz1+nz2) = acoo2%ja(1:nz2)
|
||||
acoo1%ja(nz1+1:nz1+nz2) = acoo2%ia(1:nz2)
|
||||
acoo1%val(nz1+1:nz1+nz2) = acoo2%val(1:nz2)
|
||||
call acoo1%set_nrows(nr)
|
||||
call acoo1%set_ncols(nr)
|
||||
call acoo1%set_nzeros(nz1+nz2)
|
||||
call aout%cp_from(acoo1)
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
return
|
||||
|
||||
9999 call psb_error_handler(err_act)
|
||||
|
||||
return
|
||||
|
||||
|
||||
end subroutine psb_saplusat
|
||||
@@ -37,9 +37,9 @@
|
||||
!
|
||||
subroutine psb_sspspmm(a,b,c,info)
|
||||
use psb_mat_mod
|
||||
use psb_s_csr_mat_mod
|
||||
use psb_s_csc_mat_mod
|
||||
use psb_s_serial_mod, psb_protect_name => psb_sspspmm
|
||||
implicit none
|
||||
|
||||
type(psb_sspmat_type), intent(in) :: a,b
|
||||
type(psb_sspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
@@ -48,6 +48,8 @@ subroutine psb_sspspmm(a,b,c,info)
|
||||
integer(psb_ipk_) :: err_act
|
||||
character(len=*), parameter :: name='psb_spspmm'
|
||||
logical :: done_spmm
|
||||
|
||||
|
||||
call psb_erractionsave(err_act)
|
||||
info = psb_success_
|
||||
|
||||
@@ -118,6 +120,8 @@ end subroutine psb_sspspmm
|
||||
|
||||
subroutine psb_lsspspmm(a,b,c,info)
|
||||
use psb_mat_mod
|
||||
use psb_s_csr_mat_mod
|
||||
use psb_s_csc_mat_mod
|
||||
use psb_s_serial_mod, psb_protect_name => psb_lsspspmm
|
||||
implicit none
|
||||
|
||||
@@ -129,6 +133,7 @@ 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)
|
||||
info = psb_success_
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
subroutine psb_zaplusat(ain,aout,info)
|
||||
use psb_z_mat_mod
|
||||
|
||||
implicit none
|
||||
type(psb_zspmat_type), intent(inout) :: ain
|
||||
type(psb_zspmat_type), intent(out) :: aout
|
||||
integer(psb_ipk_) :: info
|
||||
|
||||
type(psb_z_coo_sparse_mat) :: acoo1, acoo2
|
||||
integer(psb_ipk_) :: nr, nc, nz1, nz2
|
||||
integer(psb_ipk_) :: err_act
|
||||
character(len=20) :: name, ch_err
|
||||
|
||||
name='psb_zaplusat'
|
||||
info = psb_success_
|
||||
call psb_erractionsave(err_act)
|
||||
|
||||
|
||||
|
||||
nr = ain%get_nrows()
|
||||
nc = ain%get_ncols()
|
||||
|
||||
if (nr /= nc) then
|
||||
info=psb_err_internal_error_
|
||||
call psb_errpush(info,name)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
call ain%cp_to(acoo1)
|
||||
call acoo1%cp_to_coo(acoo2,info)
|
||||
nz1 = acoo1%get_nzeros()
|
||||
nz2 = acoo2%get_nzeros()
|
||||
call acoo1%reallocate(nz1+nz2)
|
||||
acoo1%ia(nz1+1:nz1+nz2) = acoo2%ja(1:nz2)
|
||||
acoo1%ja(nz1+1:nz1+nz2) = acoo2%ia(1:nz2)
|
||||
acoo1%val(nz1+1:nz1+nz2) = acoo2%val(1:nz2)
|
||||
call acoo1%set_nrows(nr)
|
||||
call acoo1%set_ncols(nr)
|
||||
call acoo1%set_nzeros(nz1+nz2)
|
||||
call aout%cp_from(acoo1)
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
return
|
||||
|
||||
9999 call psb_error_handler(err_act)
|
||||
|
||||
return
|
||||
|
||||
|
||||
end subroutine psb_zaplusat
|
||||
@@ -37,9 +37,9 @@
|
||||
!
|
||||
subroutine psb_zspspmm(a,b,c,info)
|
||||
use psb_mat_mod
|
||||
use psb_z_csr_mat_mod
|
||||
use psb_z_csc_mat_mod
|
||||
use psb_z_serial_mod, psb_protect_name => psb_zspspmm
|
||||
implicit none
|
||||
|
||||
type(psb_zspmat_type), intent(in) :: a,b
|
||||
type(psb_zspmat_type), intent(out) :: c
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
@@ -48,6 +48,8 @@ subroutine psb_zspspmm(a,b,c,info)
|
||||
integer(psb_ipk_) :: err_act
|
||||
character(len=*), parameter :: name='psb_spspmm'
|
||||
logical :: done_spmm
|
||||
|
||||
|
||||
call psb_erractionsave(err_act)
|
||||
info = psb_success_
|
||||
|
||||
@@ -118,6 +120,8 @@ end subroutine psb_zspspmm
|
||||
|
||||
subroutine psb_lzspspmm(a,b,c,info)
|
||||
use psb_mat_mod
|
||||
use psb_z_csr_mat_mod
|
||||
use psb_z_csc_mat_mod
|
||||
use psb_z_serial_mod, psb_protect_name => psb_lzspspmm
|
||||
implicit none
|
||||
|
||||
@@ -129,6 +133,7 @@ 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)
|
||||
info = psb_success_
|
||||
|
||||
@@ -66,7 +66,8 @@ Subroutine psb_c_par_csr_spspmm(acsr,desc_a,bcsr,ccsr,desc_c,info,data)
|
||||
use psb_comm_mod
|
||||
use psb_penv_mod
|
||||
use psb_c_tools_mod, psb_protect_name => psb_c_par_csr_spspmm
|
||||
use psb_c_serial_mod, only : psb_ccsrspspmm, psb_cbase_rwextd
|
||||
use psb_c_csr_mat_mod, only : psb_ccsrspspmm
|
||||
use psb_c_serial_mod, only : psb_cbase_rwextd
|
||||
Implicit None
|
||||
|
||||
type(psb_c_csr_sparse_mat),intent(in) :: acsr
|
||||
@@ -166,7 +167,8 @@ Subroutine psb_lc_par_csr_spspmm(acsr,desc_a,bcsr,ccsr,desc_c,info,data)
|
||||
use psb_comm_mod
|
||||
use psb_penv_mod
|
||||
use psb_c_tools_mod, psb_protect_name => psb_lc_par_csr_spspmm
|
||||
use psb_c_serial_mod, only : psb_lccsrspspmm, psb_lcbase_rwextd
|
||||
use psb_c_csr_mat_mod, only : psb_lccsrspspmm
|
||||
use psb_c_serial_mod, only : psb_lcbase_rwextd
|
||||
Implicit None
|
||||
|
||||
type(psb_lc_csr_sparse_mat),intent(in) :: acsr
|
||||
|
||||
@@ -66,7 +66,8 @@ Subroutine psb_d_par_csr_spspmm(acsr,desc_a,bcsr,ccsr,desc_c,info,data)
|
||||
use psb_comm_mod
|
||||
use psb_penv_mod
|
||||
use psb_d_tools_mod, psb_protect_name => psb_d_par_csr_spspmm
|
||||
use psb_d_serial_mod, only : psb_dcsrspspmm, psb_dbase_rwextd
|
||||
use psb_d_csr_mat_mod, only : psb_dcsrspspmm
|
||||
use psb_d_serial_mod, only : psb_dbase_rwextd
|
||||
Implicit None
|
||||
|
||||
type(psb_d_csr_sparse_mat),intent(in) :: acsr
|
||||
@@ -166,7 +167,8 @@ Subroutine psb_ld_par_csr_spspmm(acsr,desc_a,bcsr,ccsr,desc_c,info,data)
|
||||
use psb_comm_mod
|
||||
use psb_penv_mod
|
||||
use psb_d_tools_mod, psb_protect_name => psb_ld_par_csr_spspmm
|
||||
use psb_d_serial_mod, only : psb_ldcsrspspmm, psb_ldbase_rwextd
|
||||
use psb_d_csr_mat_mod, only : psb_ldcsrspspmm
|
||||
use psb_d_serial_mod, only : psb_ldbase_rwextd
|
||||
Implicit None
|
||||
|
||||
type(psb_ld_csr_sparse_mat),intent(in) :: acsr
|
||||
|
||||
@@ -66,7 +66,8 @@ Subroutine psb_s_par_csr_spspmm(acsr,desc_a,bcsr,ccsr,desc_c,info,data)
|
||||
use psb_comm_mod
|
||||
use psb_penv_mod
|
||||
use psb_s_tools_mod, psb_protect_name => psb_s_par_csr_spspmm
|
||||
use psb_s_serial_mod, only : psb_scsrspspmm, psb_sbase_rwextd
|
||||
use psb_s_csr_mat_mod, only : psb_scsrspspmm
|
||||
use psb_s_serial_mod, only : psb_sbase_rwextd
|
||||
Implicit None
|
||||
|
||||
type(psb_s_csr_sparse_mat),intent(in) :: acsr
|
||||
@@ -166,7 +167,8 @@ Subroutine psb_ls_par_csr_spspmm(acsr,desc_a,bcsr,ccsr,desc_c,info,data)
|
||||
use psb_comm_mod
|
||||
use psb_penv_mod
|
||||
use psb_s_tools_mod, psb_protect_name => psb_ls_par_csr_spspmm
|
||||
use psb_s_serial_mod, only : psb_lscsrspspmm, psb_lsbase_rwextd
|
||||
use psb_s_csr_mat_mod, only : psb_lscsrspspmm
|
||||
use psb_s_serial_mod, only : psb_lsbase_rwextd
|
||||
Implicit None
|
||||
|
||||
type(psb_ls_csr_sparse_mat),intent(in) :: acsr
|
||||
|
||||
@@ -66,7 +66,8 @@ Subroutine psb_z_par_csr_spspmm(acsr,desc_a,bcsr,ccsr,desc_c,info,data)
|
||||
use psb_comm_mod
|
||||
use psb_penv_mod
|
||||
use psb_z_tools_mod, psb_protect_name => psb_z_par_csr_spspmm
|
||||
use psb_z_serial_mod, only : psb_zcsrspspmm, psb_zbase_rwextd
|
||||
use psb_z_csr_mat_mod, only : psb_zcsrspspmm
|
||||
use psb_z_serial_mod, only : psb_zbase_rwextd
|
||||
Implicit None
|
||||
|
||||
type(psb_z_csr_sparse_mat),intent(in) :: acsr
|
||||
@@ -166,7 +167,8 @@ Subroutine psb_lz_par_csr_spspmm(acsr,desc_a,bcsr,ccsr,desc_c,info,data)
|
||||
use psb_comm_mod
|
||||
use psb_penv_mod
|
||||
use psb_z_tools_mod, psb_protect_name => psb_lz_par_csr_spspmm
|
||||
use psb_z_serial_mod, only : psb_lzcsrspspmm, psb_lzbase_rwextd
|
||||
use psb_z_csr_mat_mod, only : psb_lzcsrspspmm
|
||||
use psb_z_serial_mod, only : psb_lzbase_rwextd
|
||||
Implicit None
|
||||
|
||||
type(psb_lz_csr_sparse_mat),intent(in) :: acsr
|
||||
|
||||
@@ -6989,7 +6989,7 @@ if test x"$psblas_cv_fc" == "x" ; then
|
||||
# TODO : discover the exact conditions when the usage of -WF is needed.
|
||||
psblas_cv_define_prepend="-WF,"
|
||||
if eval "$MPIFC -qversion 2>&1 | grep -e\"Version: 10\.\" 2>/dev/null"; then
|
||||
FDEFINES="$psblas_cv_define_prepend-DXLF_10 $FDEFINES"; sed -e's/(0-9*).*/$1/p'
|
||||
FDEFINES="$psblas_cv_define_prepend-DPSB_CMP_XLF_10 $FDEFINES"; sed -e's/(0-9*).*/$1/p'
|
||||
fi
|
||||
|
||||
# Note : there could be problems with old xlf compiler versions ( <10.1 )
|
||||
@@ -7005,7 +7005,7 @@ if test x"$psblas_cv_fc" == "x" ; then
|
||||
psblas_flang_version=`flang-new --version |grep flang| sed -e 's/^ *flang.* version *//gi'`;
|
||||
psblas_flang_shv=`flang-new --version |grep flang| sed -e 's/^ *flang.* version *//gi' | sed -e's/\./ /g' | awk '{print $1}'`;
|
||||
psblas_cv_define_prepend="";
|
||||
FDEFINES="$psblas_cv_define_prepend-DFLANG $FDEFINES"
|
||||
FDEFINES="$psblas_cv_define_prepend-DPSB_CMP_FLANG $FDEFINES"
|
||||
psblas_shvs=`echo $psblas_flang_shv|sed -e's/^0-9*//g'`;
|
||||
if test x"$psblas_shvs" != x""; then
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Running with LLVM $psblas_flang_version ($psblas_flang_shv). " >&5
|
||||
@@ -7024,7 +7024,7 @@ printf "%s\n" "$as_me: Running with LLVM $psblas_flang_version ($psblas_flang_
|
||||
psblas_flang_shv=`flang --version |grep flang| sed -e 's/^ *flang.* version *//gi' | sed -e's/\./ /g' | awk '{print $1}'`;
|
||||
psblas_cv_fc="flang";
|
||||
psblas_cv_define_prepend="";
|
||||
FDEFINES="$psblas_cv_define_prepend-DFLANG $FDEFINES"
|
||||
FDEFINES="$psblas_cv_define_prepend-DPSB_CMP_FLANG $FDEFINES"
|
||||
psblas_shvs=`echo $psblas_flang_shv|sed -e's/^0-9*//g'`;
|
||||
if test x"$psblas_shvs" != x""; then
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Running with LLVM $psblas_flang_version ($psblas_flang_shv). " >&5
|
||||
@@ -7037,7 +7037,7 @@ printf "%s\n" "$as_me: Running with LLVM $psblas_flang_version ($psblas_flang_
|
||||
fi
|
||||
elif eval "$MPIFC -V 2>&1 | grep Intel.*Fortran.*Compiler 2>/dev/null" ; then
|
||||
# Intel compiler identification
|
||||
|
||||
FDEFINES="$psblas_cv_define_prepend-DPSB_CMP_INTEL $FDEFINES"
|
||||
psblas_cv_fc="ifc";
|
||||
elif eval "$MPIFC -v 2>&1 | grep NAG 2>/dev/null" ; then
|
||||
psblas_cv_fc="nag";
|
||||
|
||||
+4
-4
@@ -242,7 +242,7 @@ if test x"$psblas_cv_fc" == "x" ; then
|
||||
# TODO : discover the exact conditions when the usage of -WF is needed.
|
||||
psblas_cv_define_prepend="-WF,"
|
||||
if eval "$MPIFC -qversion 2>&1 | grep -e\"Version: 10\.\" 2>/dev/null"; then
|
||||
FDEFINES="$psblas_cv_define_prepend-DXLF_10 $FDEFINES"; sed -e's/([0-9]*).*/$1/p'
|
||||
FDEFINES="$psblas_cv_define_prepend-DPSB_CMP_XLF_10 $FDEFINES"; sed -e's/([0-9]*).*/$1/p'
|
||||
fi
|
||||
|
||||
# Note : there could be problems with old xlf compiler versions ( <10.1 )
|
||||
@@ -258,7 +258,7 @@ if test x"$psblas_cv_fc" == "x" ; then
|
||||
psblas_flang_version=`flang-new --version |grep flang| sed -e 's/^ *flang.* version *//gi'`;
|
||||
psblas_flang_shv=`flang-new --version |grep flang| sed -e 's/^ *flang.* version *//gi' | sed -e's/\./ /g' | awk '{print $1}'`;
|
||||
psblas_cv_define_prepend="";
|
||||
FDEFINES="$psblas_cv_define_prepend-DFLANG $FDEFINES"
|
||||
FDEFINES="$psblas_cv_define_prepend-DPSB_CMP_FLANG $FDEFINES"
|
||||
psblas_shvs=`echo $psblas_flang_shv|sed -e's/[^0-9]*//g'`;
|
||||
if test x"$psblas_shvs" != x""; then
|
||||
AC_MSG_NOTICE([[Running with LLVM $psblas_flang_version ($psblas_flang_shv). ]])
|
||||
@@ -276,7 +276,7 @@ if test x"$psblas_cv_fc" == "x" ; then
|
||||
psblas_flang_shv=`flang --version |grep flang| sed -e 's/^ *flang.* version *//gi' | sed -e's/\./ /g' | awk '{print $1}'`;
|
||||
psblas_cv_fc="flang";
|
||||
psblas_cv_define_prepend="";
|
||||
FDEFINES="$psblas_cv_define_prepend-DFLANG $FDEFINES"
|
||||
FDEFINES="$psblas_cv_define_prepend-DPSB_CMP_FLANG $FDEFINES"
|
||||
psblas_shvs=`echo $psblas_flang_shv|sed -e's/[^0-9]*//g'`;
|
||||
if test x"$psblas_shvs" != x""; then
|
||||
AC_MSG_NOTICE([[Running with LLVM $psblas_flang_version ($psblas_flang_shv). ]])
|
||||
@@ -288,7 +288,7 @@ if test x"$psblas_cv_fc" == "x" ; then
|
||||
fi
|
||||
elif eval "$MPIFC -V 2>&1 | grep Intel.*Fortran.*Compiler 2>/dev/null" ; then
|
||||
# Intel compiler identification
|
||||
|
||||
FDEFINES="$psblas_cv_define_prepend-DPSB_CMP_INTEL $FDEFINES"
|
||||
psblas_cv_fc="ifc";
|
||||
elif eval "$MPIFC -v 2>&1 | grep NAG 2>/dev/null" ; then
|
||||
psblas_cv_fc="nag";
|
||||
|
||||
@@ -76,7 +76,7 @@ contains
|
||||
character(len=*), intent(in) :: methdname
|
||||
integer(psb_ipk_), intent(in) :: me, itx, itrace
|
||||
real(psb_dpk_), intent(in) :: errnum, errden, eps
|
||||
character(len=*), parameter :: fmt='(a18,1x,i4,3(2x,es15.9))'
|
||||
character(len=*), parameter :: fmt='(a18,1x,i4,3(2x,es18.9))'
|
||||
integer(psb_ipk_), parameter :: outlen=18
|
||||
character(len=len(methdname)) :: mname
|
||||
character(len=outlen) :: outname
|
||||
@@ -102,8 +102,8 @@ contains
|
||||
real(psb_dpk_), optional, intent(out) :: err
|
||||
integer(psb_ipk_), optional, intent(out) :: iter
|
||||
|
||||
character(len=*), parameter :: fmt='(a,2x,es15.9,1x,a,1x,i4,1x,a)'
|
||||
character(len=*), parameter :: fmt1='(a,3(2x,es15.9))'
|
||||
character(len=*), parameter :: fmt='(a,2x,es18.9,1x,a,1x,i4,1x,a)'
|
||||
character(len=*), parameter :: fmt1='(a,3(2x,es18.9))'
|
||||
|
||||
if (errden == dzero) then
|
||||
if (errnum > eps) then
|
||||
|
||||
Reference in New Issue
Block a user