mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-18 11:52:11 +00:00
Defined new variant of allocate_mnnz for mixed IPK/LPK
This commit is contained in:
@@ -588,8 +588,16 @@ module psb_base_mat_mod
|
||||
procedure, pass(a) :: reinit => psb_lbase_reinit
|
||||
procedure, pass(a) :: allocate_mnnz => psb_lbase_allocate_mnnz
|
||||
procedure, pass(a) :: reallocate_nz => psb_lbase_reallocate_nz
|
||||
#if defined(IPK4) && defined(LPK8)
|
||||
procedure, pass(a) :: allocate_imnnz => psb_lbase_allocate_imnnz
|
||||
procedure, pass(a) :: reallocate_inz => psb_lbase_reallocate_inz
|
||||
generic, public :: allocate => allocate_mnnz, allocate_imnnz
|
||||
generic, public :: reallocate => reallocate_nz, reallocate_inz
|
||||
#else
|
||||
generic, public :: allocate => allocate_mnnz
|
||||
generic, public :: reallocate => reallocate_nz
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
procedure, pass(a) :: csgetptn => psb_lbase_csgetptn
|
||||
@@ -1413,6 +1421,30 @@ contains
|
||||
end subroutine psb_lbase_set_lncols
|
||||
|
||||
#if defined(IPK4) && defined(LPK8)
|
||||
subroutine psb_lbase_allocate_imnnz(m,n,a,nz)
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m,n
|
||||
class(psb_lbase_sparse_mat), intent(inout) :: a
|
||||
integer(psb_ipk_), intent(in), optional :: nz
|
||||
integer(psb_lpk_) :: lm, ln, lnz
|
||||
lm = m
|
||||
ln = n
|
||||
if (present(nz)) then
|
||||
lnz = nz
|
||||
call a%allocate(lm,ln,lnz)
|
||||
else
|
||||
call a%allocate(lm,ln)
|
||||
end if
|
||||
end subroutine psb_lbase_allocate_imnnz
|
||||
|
||||
subroutine psb_lbase_reallocate_inz(nz,a)
|
||||
integer(psb_ipk_), intent(in) :: nz
|
||||
class(psb_lbase_sparse_mat), intent(inout) :: a
|
||||
integer(psb_lpk_) :: lnz
|
||||
lnz = nz
|
||||
call a%reallocate(lnz)
|
||||
end subroutine psb_lbase_reallocate_inz
|
||||
|
||||
subroutine psb_lbase_set_inrows(m,a)
|
||||
implicit none
|
||||
class(psb_lbase_sparse_mat), intent(inout) :: a
|
||||
|
||||
Reference in New Issue
Block a user