base/serial/psb_csymbmm.f90
 base/serial/psb_dsymbmm.f90
 base/serial/psb_ssymbmm.f90
 base/serial/psb_zsymbmm.f90

Restored allocatable CLASS  to allocatable TYPE.
psblas3-type-indexed
Salvatore Filippone 13 years ago
parent fef85eb667
commit bd193bc97c

@ -46,7 +46,7 @@ subroutine psb_csymbmm(a,b,c,info)
type(psb_cspmat_type), intent(in) :: a,b type(psb_cspmat_type), intent(in) :: a,b
type(psb_cspmat_type), intent(out) :: c type(psb_cspmat_type), intent(out) :: c
integer, intent(out) :: info integer, intent(out) :: info
class(psb_c_base_sparse_mat), allocatable :: ccsr type(psb_c_csr_sparse_mat), allocatable :: ccsr
integer :: err_act integer :: err_act
character(len=*), parameter :: name='psb_symbmm' character(len=*), parameter :: name='psb_symbmm'
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
@ -58,16 +58,10 @@ subroutine psb_csymbmm(a,b,c,info)
goto 9999 goto 9999
endif endif
allocate(psb_c_csr_sparse_mat :: ccsr,stat=info) allocate(ccsr,stat=info)
if (info == psb_success_) then if (info == psb_success_) then
select type (ccsr)
type is (psb_c_csr_sparse_mat)
call psb_symbmm(a%a,b%a,ccsr,info) call psb_symbmm(a%a,b%a,ccsr,info)
class default
! This is impossible
info = psb_err_internal_error_
end select
else else
info = psb_err_alloc_dealloc_ info = psb_err_alloc_dealloc_
end if end if

@ -46,7 +46,7 @@ subroutine psb_dsymbmm(a,b,c,info)
type(psb_dspmat_type), intent(in) :: a,b type(psb_dspmat_type), intent(in) :: a,b
type(psb_dspmat_type), intent(out) :: c type(psb_dspmat_type), intent(out) :: c
integer, intent(out) :: info integer, intent(out) :: info
class(psb_d_base_sparse_mat), allocatable :: ccsr type(psb_d_csr_sparse_mat), allocatable :: ccsr
integer :: err_act integer :: err_act
character(len=*), parameter :: name='psb_symbmm' character(len=*), parameter :: name='psb_symbmm'
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
@ -58,16 +58,10 @@ subroutine psb_dsymbmm(a,b,c,info)
goto 9999 goto 9999
endif endif
allocate(psb_d_csr_sparse_mat :: ccsr,stat=info) allocate(ccsr,stat=info)
if (info == psb_success_) then if (info == psb_success_) then
select type (ccsr)
type is (psb_d_csr_sparse_mat)
call psb_symbmm(a%a,b%a,ccsr,info) call psb_symbmm(a%a,b%a,ccsr,info)
class default
! This is impossible
info = psb_err_internal_error_
end select
else else
info = psb_err_alloc_dealloc_ info = psb_err_alloc_dealloc_
end if end if

@ -46,7 +46,7 @@ subroutine psb_ssymbmm(a,b,c,info)
type(psb_sspmat_type), intent(in) :: a,b type(psb_sspmat_type), intent(in) :: a,b
type(psb_sspmat_type), intent(out) :: c type(psb_sspmat_type), intent(out) :: c
integer, intent(out) :: info integer, intent(out) :: info
class(psb_s_base_sparse_mat), allocatable :: ccsr type(psb_s_csr_sparse_mat), allocatable :: ccsr
integer :: err_act integer :: err_act
character(len=*), parameter :: name='psb_symbmm' character(len=*), parameter :: name='psb_symbmm'
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
@ -58,16 +58,10 @@ subroutine psb_ssymbmm(a,b,c,info)
goto 9999 goto 9999
endif endif
allocate(psb_s_csr_sparse_mat :: ccsr,stat=info) allocate(ccsr,stat=info)
if (info == psb_success_) then if (info == psb_success_) then
select type (ccsr)
type is (psb_s_csr_sparse_mat)
call psb_symbmm(a%a,b%a,ccsr,info) call psb_symbmm(a%a,b%a,ccsr,info)
class default
! This is impossible
info = psb_err_internal_error_
end select
else else
info = psb_err_alloc_dealloc_ info = psb_err_alloc_dealloc_
end if end if

@ -46,7 +46,7 @@ subroutine psb_zsymbmm(a,b,c,info)
type(psb_zspmat_type), intent(in) :: a,b type(psb_zspmat_type), intent(in) :: a,b
type(psb_zspmat_type), intent(out) :: c type(psb_zspmat_type), intent(out) :: c
integer, intent(out) :: info integer, intent(out) :: info
class(psb_z_base_sparse_mat), allocatable :: ccsr type(psb_z_csr_sparse_mat), allocatable :: ccsr
integer :: err_act integer :: err_act
character(len=*), parameter :: name='psb_symbmm' character(len=*), parameter :: name='psb_symbmm'
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
@ -58,16 +58,10 @@ subroutine psb_zsymbmm(a,b,c,info)
goto 9999 goto 9999
endif endif
allocate(psb_z_csr_sparse_mat :: ccsr,stat=info) allocate(ccsr,stat=info)
if (info == psb_success_) then if (info == psb_success_) then
select type (ccsr)
type is (psb_z_csr_sparse_mat)
call psb_symbmm(a%a,b%a,ccsr,info) call psb_symbmm(a%a,b%a,ccsr,info)
class default
! This is impossible
info = psb_err_internal_error_
end select
else else
info = psb_err_alloc_dealloc_ info = psb_err_alloc_dealloc_
end if end if

Loading…
Cancel
Save