@ -59,7 +59,6 @@ module psb_s_mat_mod
procedure , pass ( a ) :: get_nzeros = > psb_s_get_nzeros
procedure , pass ( a ) :: get_nz_row = > psb_s_get_nz_row
procedure , pass ( a ) :: get_size = > psb_s_get_size
procedure , pass ( a ) :: get_state = > psb_s_get_state
procedure , pass ( a ) :: get_dupl = > psb_s_get_dupl
procedure , pass ( a ) :: is_null = > psb_s_is_null
procedure , pass ( a ) :: is_bld = > psb_s_is_bld
@ -77,7 +76,6 @@ module psb_s_mat_mod
procedure , pass ( a ) :: set_nrows = > psb_s_set_nrows
procedure , pass ( a ) :: set_ncols = > psb_s_set_ncols
procedure , pass ( a ) :: set_dupl = > psb_s_set_dupl
procedure , pass ( a ) :: set_state = > psb_s_set_state
procedure , pass ( a ) :: set_null = > psb_s_set_null
procedure , pass ( a ) :: set_bld = > psb_s_set_bld
procedure , pass ( a ) :: set_upd = > psb_s_set_upd
@ -109,7 +107,7 @@ module psb_s_mat_mod
procedure , pass ( a ) :: s_cscnv_ip = > psb_s_cscnv_ip
procedure , pass ( a ) :: s_cscnv_base = > psb_s_cscnv_base
generic , public :: cscnv = > s_cscnv , s_cscnv_ip , s_cscnv_base
procedure , pass ( a ) :: clone = > psb_sspmat_ type_ clone
procedure , pass ( a ) :: clone = > psb_sspmat_ clone
procedure , pass ( a ) :: reinit = > psb_s_reinit
procedure , pass ( a ) :: print_i = > psb_s_sparse_print
procedure , pass ( a ) :: print_n = > psb_s_n_sparse_print
@ -130,8 +128,6 @@ module psb_s_mat_mod
procedure , pass ( a ) :: s_transc_2mat = > psb_s_transc_2mat
generic , public :: transc = > s_transc_1mat , s_transc_2mat
! Computational routines
procedure , pass ( a ) :: get_diag = > psb_s_get_diag
procedure , pass ( a ) :: maxval = > psb_s_maxval
@ -156,9 +152,9 @@ module psb_s_mat_mod
end type psb_sspmat_type
private :: psb_s_get_nrows , psb_s_get_ncols , psb_s_get_nzeros , psb_s_get_size , &
& psb_s_get_ state, psb_s_get_ dupl, psb_s_is_null , psb_s_is_bl d, psb_s_is_up d, &
& psb_s_is_ asb, psb_s_is_sorted , psb_s_is_upper , psb_s_is_lower , psb_s_is_triangle , &
& psb_s_ get_nz_row
& psb_s_get_ dupl, psb_s_is_null , psb_s_is_bl d, &
& psb_s_is_ upd, psb_s_is_ asb, psb_s_is_sorted , psb_s_is_upper , &
& psb_s_ is_lower, psb_s_is_triangle , psb_s_ get_nz_row
interface psb_sizeof
module procedure psb_s_sizeof
@ -186,7 +182,7 @@ module psb_s_mat_mod
integer , intent ( in ) :: m
end subroutine psb_s_set_nrows
end interface
interface
subroutine psb_s_set_ncols ( n , a )
import :: psb_sspmat_type
@ -194,15 +190,7 @@ module psb_s_mat_mod
integer , intent ( in ) :: n
end subroutine psb_s_set_ncols
end interface
interface
subroutine psb_s_set_state ( n , a )
import :: psb_sspmat_type
class ( psb_sspmat_type ) , intent ( inout ) :: a
integer , intent ( in ) :: n
end subroutine psb_s_set_state
end interface
interface
subroutine psb_s_set_dupl ( n , a )
import :: psb_sspmat_type
@ -210,35 +198,35 @@ module psb_s_mat_mod
integer , intent ( in ) :: n
end subroutine psb_s_set_dupl
end interface
interface
subroutine psb_s_set_null ( a )
import :: psb_sspmat_type
class ( psb_sspmat_type ) , intent ( inout ) :: a
end subroutine psb_s_set_null
end interface
interface
subroutine psb_s_set_bld ( a )
import :: psb_sspmat_type
class ( psb_sspmat_type ) , intent ( inout ) :: a
end subroutine psb_s_set_bld
end interface
interface
subroutine psb_s_set_upd ( a )
import :: psb_sspmat_type
class ( psb_sspmat_type ) , intent ( inout ) :: a
end subroutine psb_s_set_upd
end interface
interface
subroutine psb_s_set_asb ( a )
import :: psb_sspmat_type
class ( psb_sspmat_type ) , intent ( inout ) :: a
end subroutine psb_s_set_asb
end interface
interface
subroutine psb_s_set_sorted ( a , val )
import :: psb_sspmat_type
@ -246,7 +234,7 @@ module psb_s_mat_mod
logical , intent ( in ) , optional :: val
end subroutine psb_s_set_sorted
end interface
interface
subroutine psb_s_set_triangle ( a , val )
import :: psb_sspmat_type
@ -254,7 +242,7 @@ module psb_s_mat_mod
logical , intent ( in ) , optional :: val
end subroutine psb_s_set_triangle
end interface
interface
subroutine psb_s_set_unit ( a , val )
import :: psb_sspmat_type
@ -262,7 +250,7 @@ module psb_s_mat_mod
logical , intent ( in ) , optional :: val
end subroutine psb_s_set_unit
end interface
interface
subroutine psb_s_set_lower ( a , val )
import :: psb_sspmat_type
@ -270,7 +258,7 @@ module psb_s_mat_mod
logical , intent ( in ) , optional :: val
end subroutine psb_s_set_lower
end interface
interface
subroutine psb_s_set_upper ( a , val )
import :: psb_sspmat_type
@ -278,8 +266,7 @@ module psb_s_mat_mod
logical , intent ( in ) , optional :: val
end subroutine psb_s_set_upper
end interface
interface
subroutine psb_s_sparse_print ( iout , a , iv , eirs , eics , head , ivr , ivc )
import :: psb_sspmat_type
@ -303,7 +290,7 @@ module psb_s_mat_mod
integer , intent ( in ) , optional :: ivr ( : ) , ivc ( : )
end subroutine psb_s_n_sparse_print
end interface
interface
subroutine psb_s_get_neigh ( a , idx , neigh , n , info , lev )
import :: psb_sspmat_type
@ -315,7 +302,7 @@ module psb_s_mat_mod
integer , optional , intent ( in ) :: lev
end subroutine psb_s_get_neigh
end interface
interface
subroutine psb_s_csall ( nr , nc , a , info , nz )
import :: psb_sspmat_type
@ -325,7 +312,7 @@ module psb_s_mat_mod
integer , intent ( in ) , optional :: nz
end subroutine psb_s_csall
end interface
interface
subroutine psb_s_reallocate_nz ( nz , a )
import :: psb_sspmat_type
@ -333,36 +320,36 @@ module psb_s_mat_mod
class ( psb_sspmat_type ) , intent ( inout ) :: a
end subroutine psb_s_reallocate_nz
end interface
interface
subroutine psb_s_free ( a )
import :: psb_sspmat_type
class ( psb_sspmat_type ) , intent ( inout ) :: a
end subroutine psb_s_free
end interface
interface
subroutine psb_s_trim ( a )
import :: psb_sspmat_type
class ( psb_sspmat_type ) , intent ( inout ) :: a
end subroutine psb_s_trim
end interface
interface
subroutine psb_s_csput ( nz , ia , ja , val , a , imin , imax , jmin , jmax , info , gtl )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( inout ) :: a
real ( psb_ s pk_) , intent ( in ) :: val ( : )
real ( psb_ d pk_) , intent ( in ) :: val ( : )
integer , intent ( in ) :: nz , ia ( : ) , ja ( : ) , imin , imax , jmin , jmax
integer , intent ( out ) :: info
integer , intent ( in ) , optional :: gtl ( : )
end subroutine psb_s_csput
end interface
interface
subroutine psb_s_csgetptn ( imin , imax , a , nz , ia , ja , info , &
& jmin , jmax , iren , append , nzin , rscale , cscale )
import :: psb_sspmat_type , psb_ s pk_
& jmin , jmax , iren , append , nzin , rscale , cscale )
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
integer , intent ( in ) :: imin , imax
integer , intent ( out ) :: nz
@ -374,16 +361,16 @@ module psb_s_mat_mod
logical , intent ( in ) , optional :: rscale , cscale
end subroutine psb_s_csgetptn
end interface
interface
subroutine psb_s_csgetrow ( imin , imax , a , nz , ia , ja , val , info , &
& jmin , jmax , iren , append , nzin , rscale , cscale )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
integer , intent ( in ) :: imin , imax
integer , intent ( out ) :: nz
integer , allocatable , intent ( inout ) :: ia ( : ) , ja ( : )
real ( psb_ s pk_) , allocatable , intent ( inout ) :: val ( : )
real ( psb_ d pk_) , allocatable , intent ( inout ) :: val ( : )
integer , intent ( out ) :: info
logical , intent ( in ) , optional :: append
integer , intent ( in ) , optional :: iren ( : )
@ -391,11 +378,11 @@ module psb_s_mat_mod
logical , intent ( in ) , optional :: rscale , cscale
end subroutine psb_s_csgetrow
end interface
interface
subroutine psb_s_csgetblk ( imin , imax , a , b , info , &
& jmin , jmax , iren , append , rscale , cscale )
import :: psb_sspmat_type , psb_ s pk_
& jmin , jmax , iren , append , rscale , cscale )
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
class ( psb_sspmat_type ) , intent ( out ) :: b
integer , intent ( in ) :: imin , imax
@ -406,11 +393,11 @@ module psb_s_mat_mod
logical , intent ( in ) , optional :: rscale , cscale
end subroutine psb_s_csgetblk
end interface
interface
subroutine psb_s_csclip ( a , b , info , &
& imin , imax , jmin , jmax , rscale , cscale )
import :: psb_sspmat_type , psb_ s pk_
& imin , imax , jmin , jmax , rscale , cscale )
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
class ( psb_sspmat_type ) , intent ( out ) :: b
integer , intent ( out ) :: info
@ -418,11 +405,11 @@ module psb_s_mat_mod
logical , intent ( in ) , optional :: rscale , cscale
end subroutine psb_s_csclip
end interface
interface
subroutine psb_s_b_csclip ( a , b , info , &
& imin , imax , jmin , jmax , rscale , cscale )
import :: psb_sspmat_type , psb_ s pk_, psb_s_coo_sparse_mat
& imin , imax , jmin , jmax , rscale , cscale )
import :: psb_sspmat_type , psb_ d pk_, psb_s_coo_sparse_mat
class ( psb_sspmat_type ) , intent ( in ) :: a
type ( psb_s_coo_sparse_mat ) , intent ( out ) :: b
integer , intent ( out ) :: info
@ -430,10 +417,10 @@ module psb_s_mat_mod
logical , intent ( in ) , optional :: rscale , cscale
end subroutine psb_s_b_csclip
end interface
interface
subroutine psb_s_cscnv ( a , b , info , type , mold , upd , dupl )
import :: psb_sspmat_type , psb_ s pk_, psb_s_base_sparse_mat
import :: psb_sspmat_type , psb_ d pk_, psb_s_base_sparse_mat
class ( psb_sspmat_type ) , intent ( in ) :: a
class ( psb_sspmat_type ) , intent ( out ) :: b
integer , intent ( out ) :: info
@ -442,11 +429,11 @@ module psb_s_mat_mod
class ( psb_s_base_sparse_mat ) , intent ( in ) , optional :: mold
end subroutine psb_s_cscnv
end interface
interface
subroutine psb_s_cscnv_ip ( a , iinfo , type , mold , dupl )
import :: psb_sspmat_type , psb_ s pk_, psb_s_base_sparse_mat
import :: psb_sspmat_type , psb_ d pk_, psb_s_base_sparse_mat
class ( psb_sspmat_type ) , intent ( inout ) :: a
integer , intent ( out ) :: iinfo
integer , optional , intent ( in ) :: dupl
@ -454,18 +441,18 @@ module psb_s_mat_mod
class ( psb_s_base_sparse_mat ) , intent ( in ) , optional :: mold
end subroutine psb_s_cscnv_ip
end interface
interface
subroutine psb_s_cscnv_base ( a , b , info , dupl )
import :: psb_sspmat_type , psb_ s pk_, psb_s_base_sparse_mat
import :: psb_sspmat_type , psb_ d pk_, psb_s_base_sparse_mat
class ( psb_sspmat_type ) , intent ( in ) :: a
class ( psb_s_base_sparse_mat ) , intent ( out ) :: b
integer , intent ( out ) :: info
integer , optional , intent ( in ) :: dupl
end subroutine psb_s_cscnv_base
end interface
interface
subroutine psb_s_clip_d ( a , b , info )
import :: psb_sspmat_type
@ -474,7 +461,7 @@ module psb_s_mat_mod
integer , intent ( out ) :: info
end subroutine psb_s_clip_d
end interface
interface
subroutine psb_s_clip_d_ip ( a , info )
import :: psb_sspmat_type
@ -482,39 +469,39 @@ module psb_s_mat_mod
integer , intent ( out ) :: info
end subroutine psb_s_clip_d_ip
end interface
interface
subroutine psb_s_mv_from ( a , b )
import :: psb_sspmat_type , psb_ s pk_, psb_s_base_sparse_mat
class ( psb_sspmat_type ) , intent ( out ) :: a
import :: psb_sspmat_type , psb_ d pk_, psb_s_base_sparse_mat
class ( psb_sspmat_type ) , intent ( out ) :: a
class ( psb_s_base_sparse_mat ) , intent ( inout ) :: b
end subroutine psb_s_mv_from
end interface
interface
subroutine psb_s_cp_from ( a , b )
import :: psb_sspmat_type , psb_ s pk_, psb_s_base_sparse_mat
class ( psb_sspmat_type ) , intent ( out ) :: a
class ( psb_s_base_sparse_mat ) , intent ( in ) :: b
import :: psb_sspmat_type , psb_ d pk_, psb_s_base_sparse_mat
class ( psb_sspmat_type ) , intent ( out ) :: a
class ( psb_s_base_sparse_mat ) , intent ( in out ) , allocatable :: b
end subroutine psb_s_cp_from
end interface
interface
subroutine psb_s_mv_to ( a , b )
import :: psb_sspmat_type , psb_ s pk_, psb_s_base_sparse_mat
class ( psb_sspmat_type ) , intent ( inout ) :: a
import :: psb_sspmat_type , psb_ d pk_, psb_s_base_sparse_mat
class ( psb_sspmat_type ) , intent ( inout ) :: a
class ( psb_s_base_sparse_mat ) , intent ( out ) :: b
end subroutine psb_s_mv_to
end interface
interface
subroutine psb_s_cp_to ( a , b )
import :: psb_sspmat_type , psb_ s pk_, psb_s_base_sparse_mat
class ( psb_sspmat_type ) , intent ( in ) :: a
import :: psb_sspmat_type , psb_ d pk_, psb_s_base_sparse_mat
class ( psb_sspmat_type ) , intent ( in ) :: a
class ( psb_s_base_sparse_mat ) , intent ( out ) :: b
end subroutine psb_s_cp_to
end interface
interface psb_move_alloc
subroutine psb_sspmat_type_move ( a , b , info )
import :: psb_sspmat_type
@ -522,15 +509,15 @@ module psb_s_mat_mod
class ( psb_sspmat_type ) , intent ( out ) :: b
integer , intent ( out ) :: info
end subroutine psb_sspmat_type_move
end interface psb_move_alloc
end interface
interface psb_clone
subroutine psb_sspmat_ type_ clone( a , b , info )
subroutine psb_sspmat_ clone( a , b , info )
import :: psb_sspmat_type
class ( psb_sspmat_type ) , intent ( in ) :: a
class ( psb_sspmat_type ) , intent ( out ) :: b
integer , intent ( out ) :: info
end subroutine psb_sspmat_ type_ clone
end subroutine psb_sspmat_ clone
end interface
interface
@ -540,14 +527,14 @@ module psb_s_mat_mod
class ( psb_s_base_sparse_mat ) , allocatable , intent ( out ) :: b
end subroutine psb_s_mold
end interface
interface
subroutine psb_s_transp_1mat ( a )
import :: psb_sspmat_type
class ( psb_sspmat_type ) , intent ( inout ) :: a
end subroutine psb_s_transp_1mat
end interface
interface
subroutine psb_s_transp_2mat ( a , b )
import :: psb_sspmat_type
@ -555,14 +542,14 @@ module psb_s_mat_mod
class ( psb_sspmat_type ) , intent ( out ) :: b
end subroutine psb_s_transp_2mat
end interface
interface
subroutine psb_s_transc_1mat ( a )
import :: psb_sspmat_type
class ( psb_sspmat_type ) , intent ( inout ) :: a
end subroutine psb_s_transc_1mat
end interface
interface
subroutine psb_s_transc_2mat ( a , b )
import :: psb_sspmat_type
@ -570,15 +557,16 @@ module psb_s_mat_mod
class ( psb_sspmat_type ) , intent ( out ) :: b
end subroutine psb_s_transc_2mat
end interface
interface
subroutine psb_s_reinit ( a , clear )
import :: psb_sspmat_type
class ( psb_sspmat_type ) , intent ( inout ) :: a
logical , intent ( in ) , optional :: clear
end subroutine psb_s_reinit
end interface
! == == == == == == == == == == == == == == == == == == =
@ -596,57 +584,57 @@ module psb_s_mat_mod
interface psb_csmm
subroutine psb_s_csmm ( alpha , a , x , beta , y , info , trans )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) , intent ( in ) :: alpha , beta , x ( : , : )
real ( psb_ s pk_) , intent ( inout ) :: y ( : , : )
real ( psb_ d pk_) , intent ( in ) :: alpha , beta , x ( : , : )
real ( psb_ d pk_) , intent ( inout ) :: y ( : , : )
integer , intent ( out ) :: info
character , optional , intent ( in ) :: trans
end subroutine psb_s_csmm
subroutine psb_s_csmv ( alpha , a , x , beta , y , info , trans )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) , intent ( in ) :: alpha , beta , x ( : )
real ( psb_ s pk_) , intent ( inout ) :: y ( : )
real ( psb_ d pk_) , intent ( in ) :: alpha , beta , x ( : )
real ( psb_ d pk_) , intent ( inout ) :: y ( : )
integer , intent ( out ) :: info
character , optional , intent ( in ) :: trans
end subroutine psb_s_csmv
subroutine psb_s_csmv_vect ( alpha , a , x , beta , y , info , trans )
use psb_s_vect_mod , only : psb_s_vect_type
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) , intent ( in ) :: alpha , beta
real ( psb_ d pk_) , intent ( in ) :: alpha , beta
type ( psb_s_vect_type ) , intent ( inout ) :: x
type ( psb_s_vect_type ) , intent ( inout ) :: y
integer , intent ( out ) :: info
character , optional , intent ( in ) :: trans
end subroutine psb_s_csmv_vect
end interface
interface psb_cssm
subroutine psb_s_cssm ( alpha , a , x , beta , y , info , trans , scale , d )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) , intent ( in ) :: alpha , beta , x ( : , : )
real ( psb_ s pk_) , intent ( inout ) :: y ( : , : )
real ( psb_ d pk_) , intent ( in ) :: alpha , beta , x ( : , : )
real ( psb_ d pk_) , intent ( inout ) :: y ( : , : )
integer , intent ( out ) :: info
character , optional , intent ( in ) :: trans , scale
real ( psb_ s pk_) , intent ( in ) , optional :: d ( : )
real ( psb_ d pk_) , intent ( in ) , optional :: d ( : )
end subroutine psb_s_cssm
subroutine psb_s_cssv ( alpha , a , x , beta , y , info , trans , scale , d )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) , intent ( in ) :: alpha , beta , x ( : )
real ( psb_ s pk_) , intent ( inout ) :: y ( : )
real ( psb_ d pk_) , intent ( in ) :: alpha , beta , x ( : )
real ( psb_ d pk_) , intent ( inout ) :: y ( : )
integer , intent ( out ) :: info
character , optional , intent ( in ) :: trans , scale
real ( psb_ s pk_) , intent ( in ) , optional :: d ( : )
real ( psb_ d pk_) , intent ( in ) , optional :: d ( : )
end subroutine psb_s_cssv
subroutine psb_s_cssv_vect ( alpha , a , x , beta , y , info , trans , scale , d )
use psb_s_vect_mod , only : psb_s_vect_type
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) , intent ( in ) :: alpha , beta
real ( psb_ d pk_) , intent ( in ) :: alpha , beta
type ( psb_s_vect_type ) , intent ( inout ) :: x
type ( psb_s_vect_type ) , intent ( inout ) :: y
integer , intent ( out ) :: info
@ -654,87 +642,88 @@ module psb_s_mat_mod
type ( psb_s_vect_type ) , optional , intent ( inout ) :: d
end subroutine psb_s_cssv_vect
end interface
interface
function psb_s_maxval ( a ) result ( res )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) :: res
real ( psb_ d pk_) :: res
end function psb_s_maxval
end interface
interface
function psb_s_csnmi ( a ) result ( res )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) :: res
real ( psb_ d pk_) :: res
end function psb_s_csnmi
end interface
interface
function psb_s_csnm1 ( a ) result ( res )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) :: res
real ( psb_ d pk_) :: res
end function psb_s_csnm1
end interface
interface
subroutine psb_s_rowsum ( d , a , info )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) , intent ( out ) :: d ( : )
integer , intent ( out ) :: info
real ( psb_ d pk_) , intent ( out ) :: d ( : )
integer , intent ( out ) :: info
end subroutine psb_s_rowsum
end interface
interface
subroutine psb_s_arwsum ( d , a , info )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) , intent ( out ) :: d ( : )
integer , intent ( out ) :: info
real ( psb_ d pk_) , intent ( out ) :: d ( : )
integer , intent ( out ) :: info
end subroutine psb_s_arwsum
end interface
interface
subroutine psb_s_colsum ( d , a , info )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) , intent ( out ) :: d ( : )
integer , intent ( out ) :: info
real ( psb_ d pk_) , intent ( out ) :: d ( : )
integer , intent ( out ) :: info
end subroutine psb_s_colsum
end interface
interface
subroutine psb_s_aclsum ( d , a , info )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) , intent ( out ) :: d ( : )
integer , intent ( out ) :: info
real ( psb_ d pk_) , intent ( out ) :: d ( : )
integer , intent ( out ) :: info
end subroutine psb_s_aclsum
end interface
interface
subroutine psb_s_get_diag ( a , d , info )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( in ) :: a
real ( psb_ s pk_) , intent ( out ) :: d ( : )
real ( psb_ d pk_) , intent ( out ) :: d ( : )
integer , intent ( out ) :: info
end subroutine psb_s_get_diag
end interface
interface psb_scal
subroutine psb_s_scal ( d , a , info )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( inout ) :: a
real ( psb_ s pk_) , intent ( in ) :: d ( : )
real ( psb_ d pk_) , intent ( in ) :: d ( : )
integer , intent ( out ) :: info
end subroutine psb_s_scal
subroutine psb_s_scals ( d , a , info )
import :: psb_sspmat_type , psb_ s pk_
import :: psb_sspmat_type , psb_ d pk_
class ( psb_sspmat_type ) , intent ( inout ) :: a
real ( psb_ s pk_) , intent ( in ) :: d
real ( psb_ d pk_) , intent ( in ) :: d
integer , intent ( out ) :: info
end subroutine psb_s_scals
end interface
@ -755,21 +744,20 @@ contains
!
! == == == == == == == == == == == == == == == == == == =
function psb_s_sizeof ( a ) result ( res )
implicit none
class ( psb_sspmat_type ) , intent ( in ) :: a
integer ( psb_long_int_k_ ) :: res
res = 0
if ( allocated ( a % a ) ) then
res = a % a % sizeof ( )
end if
end function psb_s_sizeof
function psb_s_get_fmt ( a ) result ( res )
implicit none
class ( psb_sspmat_type ) , intent ( in ) :: a
@ -796,19 +784,6 @@ contains
end if
end function psb_s_get_dupl
function psb_s_get_state ( a ) result ( res )
implicit none
class ( psb_sspmat_type ) , intent ( in ) :: a
integer :: res
if ( allocated ( a % a ) ) then
res = a % a % get_state ( )
else
res = psb_spmat_null_
end if
end function psb_s_get_state
function psb_s_get_nrows ( a ) result ( res )
implicit none
class ( psb_sspmat_type ) , intent ( in ) :: a
@ -988,9 +963,10 @@ contains
integer :: res
res = 0
if ( allocated ( a % a ) ) res = a % a % get_nz_row ( idx )
end function psb_s_get_nz_row
end module psb_s_mat_mod