|
|
|
@ -637,103 +637,6 @@ contains
|
|
|
|
|
|
|
|
|
|
call desc%destroy()
|
|
|
|
|
|
|
|
|
|
!!$ if (desc%is_valid()) then
|
|
|
|
|
!!$ ictxt=psb_cd_get_context(desc)
|
|
|
|
|
!!$
|
|
|
|
|
!!$ call psb_info(ictxt, me, np)
|
|
|
|
|
!!$ ! ....verify blacs grid correctness..
|
|
|
|
|
!!$ if (np == -1) then
|
|
|
|
|
!!$ info = psb_err_context_error_
|
|
|
|
|
!!$ call psb_errpush(info,name)
|
|
|
|
|
!!$ goto 9999
|
|
|
|
|
!!$ endif
|
|
|
|
|
!!$ else
|
|
|
|
|
!!$ ictxt = -1
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$
|
|
|
|
|
!!$ if (.not.allocated(desc%halo_index)) then
|
|
|
|
|
!!$ info=298
|
|
|
|
|
!!$ call psb_errpush(info,name)
|
|
|
|
|
!!$ goto 9999
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$
|
|
|
|
|
!!$ !deallocate halo_index field
|
|
|
|
|
!!$ deallocate(desc%halo_index,stat=info)
|
|
|
|
|
!!$ if (info /= psb_success_) then
|
|
|
|
|
!!$ info=2053
|
|
|
|
|
!!$ call psb_errpush(info,name)
|
|
|
|
|
!!$ goto 9999
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$
|
|
|
|
|
!!$ if (.not.allocated(desc%bnd_elem)) then
|
|
|
|
|
!!$! !$ info=296
|
|
|
|
|
!!$! !$ call psb_errpush(info,name)
|
|
|
|
|
!!$! !$ goto 9999
|
|
|
|
|
!!$! !$ end if
|
|
|
|
|
!!$ else
|
|
|
|
|
!!$ !deallocate halo_index field
|
|
|
|
|
!!$ deallocate(desc%bnd_elem,stat=info)
|
|
|
|
|
!!$ if (info /= psb_success_) then
|
|
|
|
|
!!$ info=2054
|
|
|
|
|
!!$ call psb_errpush(info,name)
|
|
|
|
|
!!$ goto 9999
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$
|
|
|
|
|
!!$ if (.not.allocated(desc%ovrlap_index)) then
|
|
|
|
|
!!$ info=299
|
|
|
|
|
!!$ call psb_errpush(info,name)
|
|
|
|
|
!!$ goto 9999
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$
|
|
|
|
|
!!$ !deallocate ovrlap_index field
|
|
|
|
|
!!$ deallocate(desc%ovrlap_index,stat=info)
|
|
|
|
|
!!$ if (info /= psb_success_) then
|
|
|
|
|
!!$ info=2055
|
|
|
|
|
!!$ call psb_errpush(info,name)
|
|
|
|
|
!!$ goto 9999
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$
|
|
|
|
|
!!$ !deallocate ovrlap_elem field
|
|
|
|
|
!!$ deallocate(desc%ovrlap_elem,stat=info)
|
|
|
|
|
!!$ if (info /= psb_success_) then
|
|
|
|
|
!!$ info=2056
|
|
|
|
|
!!$ call psb_errpush(info,name)
|
|
|
|
|
!!$ goto 9999
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$
|
|
|
|
|
!!$ !deallocate ovrlap_index field
|
|
|
|
|
!!$ deallocate(desc%ovr_mst_idx,stat=info)
|
|
|
|
|
!!$ if (info /= psb_success_) then
|
|
|
|
|
!!$ info=2055
|
|
|
|
|
!!$ call psb_errpush(info,name)
|
|
|
|
|
!!$ goto 9999
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$
|
|
|
|
|
!!$
|
|
|
|
|
!!$ if (allocated(desc%lprm)) &
|
|
|
|
|
!!$ & deallocate(desc%lprm,stat=info)
|
|
|
|
|
!!$ if (info /= psb_success_) then
|
|
|
|
|
!!$ info=2057
|
|
|
|
|
!!$ call psb_errpush(info,name)
|
|
|
|
|
!!$ goto 9999
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$
|
|
|
|
|
!!$ if (allocated(desc%indxmap)) then
|
|
|
|
|
!!$ call desc%indxmap%free()
|
|
|
|
|
!!$ deallocate(desc%indxmap, stat=info)
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$ if (allocated(desc%idx_space)) then
|
|
|
|
|
!!$ deallocate(desc%idx_space,stat=info)
|
|
|
|
|
!!$ if (info /= psb_success_) then
|
|
|
|
|
!!$ info=2056
|
|
|
|
|
!!$ call psb_errpush(info,name)
|
|
|
|
|
!!$ goto 9999
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$ end if
|
|
|
|
|
!!$
|
|
|
|
|
!!$ call desc%nullify()
|
|
|
|
|
|
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|