@ -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
@ -195,14 +191,6 @@ module psb_s_mat_mod
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
@ -279,7 +267,6 @@ module psb_s_mat_mod
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
@ -350,9 +337,9 @@ module psb_s_mat_mod
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 ( : )
@ -361,8 +348,8 @@ module psb_s_mat_mod
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
@ -378,12 +365,12 @@ module psb_s_mat_mod
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 ( : )
@ -394,8 +381,8 @@ module psb_s_mat_mod
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
@ -409,8 +396,8 @@ module psb_s_mat_mod
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
@ -421,8 +408,8 @@ module psb_s_mat_mod
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
@ -433,7 +420,7 @@ module psb_s_mat_mod
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
@ -446,7 +433,7 @@ module psb_s_mat_mod
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
@ -458,7 +445,7 @@ module psb_s_mat_mod
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
@ -485,32 +472,32 @@ module psb_s_mat_mod
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
@ -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
@ -581,6 +568,7 @@ module psb_s_mat_mod
end interface
! == == == == == == == == == == == == == == == == == == =
!
!
@ -596,26 +584,26 @@ 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
@ -625,28 +613,28 @@ module psb_s_mat_mod
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
@ -657,84 +645,85 @@ module psb_s_mat_mod
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
@ -769,7 +758,6 @@ contains
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
@ -993,4 +968,5 @@ contains
end function psb_s_get_nz_row
end module psb_s_mat_mod