|
|
|
@ -45,10 +45,10 @@ subroutine psb_sfree(x, desc_a, info)
|
|
|
|
|
!....parameters...
|
|
|
|
|
real(psb_spk_),allocatable, intent(inout) :: x(:,:)
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
integer(psb_ipk_),intent(out) :: info
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
|
|
|
|
|
!...locals....
|
|
|
|
|
integer(psb_ipk_) :: ictxt,np,me,err_act
|
|
|
|
|
integer(psb_ipk_) :: ictxt,np,me, err_act
|
|
|
|
|
character(len=20) :: name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -59,10 +59,10 @@ subroutine psb_sfree(x, desc_a, info)
|
|
|
|
|
if (.not.psb_is_ok_desc(desc_a)) then
|
|
|
|
|
info=psb_err_forgot_spall_
|
|
|
|
|
call psb_errpush(info,name)
|
|
|
|
|
goto 9999
|
|
|
|
|
return
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
ictxt = desc_a%get_context()
|
|
|
|
|
ictxt=desc_a%get_context()
|
|
|
|
|
|
|
|
|
|
call psb_info(ictxt, me, np)
|
|
|
|
|
! ....verify blacs grid correctness..
|
|
|
|
@ -90,12 +90,8 @@ subroutine psb_sfree(x, desc_a, info)
|
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
9999 continue
|
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
|
if (err_act == psb_act_abort_) then
|
|
|
|
|
call psb_error(ictxt)
|
|
|
|
|
return
|
|
|
|
|
end if
|
|
|
|
|
9999 call psb_error_handler(ictxt,err_act)
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
end subroutine psb_sfree
|
|
|
|
@ -106,7 +102,7 @@ end subroutine psb_sfree
|
|
|
|
|
! frees a dense matrix structure
|
|
|
|
|
!
|
|
|
|
|
! Arguments:
|
|
|
|
|
! x():) - real, allocatable The dense matrix to be freed.
|
|
|
|
|
! x(:) - real, allocatable The dense matrix to be freed.
|
|
|
|
|
! desc_a - type(psb_desc_type). The communication descriptor.
|
|
|
|
|
! info - integer. Return code
|
|
|
|
|
subroutine psb_sfreev(x, desc_a, info)
|
|
|
|
@ -116,8 +112,9 @@ subroutine psb_sfreev(x, desc_a, info)
|
|
|
|
|
real(psb_spk_),allocatable, intent(inout) :: x(:)
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
|
|
|
|
|
!...locals....
|
|
|
|
|
integer(psb_ipk_) :: ictxt,np,me,err_act
|
|
|
|
|
integer(psb_ipk_) :: ictxt,np,me, err_act
|
|
|
|
|
character(len=20) :: name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -126,18 +123,20 @@ subroutine psb_sfreev(x, desc_a, info)
|
|
|
|
|
call psb_erractionsave(err_act)
|
|
|
|
|
name='psb_sfreev'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (.not.psb_is_ok_desc(desc_a)) then
|
|
|
|
|
info=psb_err_forgot_spall_
|
|
|
|
|
call psb_errpush(info,name)
|
|
|
|
|
return
|
|
|
|
|
goto 9999
|
|
|
|
|
end if
|
|
|
|
|
ictxt = desc_a%get_context()
|
|
|
|
|
ictxt=desc_a%get_context()
|
|
|
|
|
|
|
|
|
|
call psb_info(ictxt, me, np)
|
|
|
|
|
if (np == -1) then
|
|
|
|
|
info = psb_err_context_error_
|
|
|
|
|
call psb_errpush(info,name)
|
|
|
|
|
goto 9999
|
|
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
if (.not.allocated(x)) then
|
|
|
|
@ -156,12 +155,8 @@ subroutine psb_sfreev(x, desc_a, info)
|
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
9999 continue
|
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
|
if (err_act == psb_act_abort_) then
|
|
|
|
|
call psb_error(ictxt)
|
|
|
|
|
return
|
|
|
|
|
end if
|
|
|
|
|
9999 call psb_error_handler(ictxt,err_act)
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
end subroutine psb_sfreev
|
|
|
|
@ -214,12 +209,8 @@ subroutine psb_sfree_vect(x, desc_a, info)
|
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
9999 continue
|
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
|
if (err_act == psb_act_abort_) then
|
|
|
|
|
call psb_error(ictxt)
|
|
|
|
|
return
|
|
|
|
|
end if
|
|
|
|
|
9999 call psb_error_handler(ictxt,err_act)
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
end subroutine psb_sfree_vect
|
|
|
|
@ -269,12 +260,8 @@ subroutine psb_sfree_vect_r2(x, desc_a, info)
|
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
9999 continue
|
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
|
if (err_act == psb_act_abort_) then
|
|
|
|
|
call psb_error(ictxt)
|
|
|
|
|
return
|
|
|
|
|
end if
|
|
|
|
|
9999 call psb_error_handler(ictxt,err_act)
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
end subroutine psb_sfree_vect_r2
|
|
|
|
|