base/modules/psb_sort_mod.f90
 base/serial/psb_sort_impl.f90
 prec/impl/psb_c_bjacprec_impl.f90
 prec/impl/psb_c_prec_type_impl.f90
 prec/impl/psb_cprecbld.f90
 prec/impl/psb_d_bjacprec_impl.f90
 prec/impl/psb_d_prec_type_impl.f90
 prec/impl/psb_dprecbld.f90
 prec/impl/psb_s_bjacprec_impl.f90
 prec/impl/psb_s_prec_type_impl.f90
 prec/impl/psb_sprecbld.f90
 prec/impl/psb_z_bjacprec_impl.f90
 prec/impl/psb_z_prec_type_impl.f90
 prec/impl/psb_zprecbld.f90
 prec/psb_c_base_prec_mod.f90
 prec/psb_d_base_prec_mod.f90
 prec/psb_s_base_prec_mod.f90
 prec/psb_z_base_prec_mod.f90

1. Changed internal naming scheme for heaps.
2. Fixes for long integers in PREC.
psblas3-final
Salvatore Filippone 12 years ago
parent 3940831888
commit 2bf2843f7a

@ -64,16 +64,16 @@ module psb_sort_mod
integer(psb_ipk_), allocatable :: keys(:) integer(psb_ipk_), allocatable :: keys(:)
integer(psb_ipk_), allocatable :: idxs(:) integer(psb_ipk_), allocatable :: idxs(:)
end type psb_int_idx_heap end type psb_int_idx_heap
type psb_real_idx_heap type psb_sreal_idx_heap
integer(psb_ipk_) :: last, dir integer(psb_ipk_) :: last, dir
real(psb_spk_), allocatable :: keys(:) real(psb_spk_), allocatable :: keys(:)
integer(psb_ipk_), allocatable :: idxs(:) integer(psb_ipk_), allocatable :: idxs(:)
end type psb_real_idx_heap end type psb_sreal_idx_heap
type psb_double_idx_heap type psb_dreal_idx_heap
integer(psb_ipk_) :: last, dir integer(psb_ipk_) :: last, dir
real(psb_dpk_), allocatable :: keys(:) real(psb_dpk_), allocatable :: keys(:)
integer(psb_ipk_), allocatable :: idxs(:) integer(psb_ipk_), allocatable :: idxs(:)
end type psb_double_idx_heap end type psb_dreal_idx_heap
type psb_scomplex_idx_heap type psb_scomplex_idx_heap
integer(psb_ipk_) :: last, dir integer(psb_ipk_) :: last, dir
complex(psb_spk_), allocatable :: keys(:) complex(psb_spk_), allocatable :: keys(:)
@ -239,18 +239,18 @@ module psb_sort_mod
type(psb_int_heap), intent(in) :: heap type(psb_int_heap), intent(in) :: heap
integer(psb_ipk_) :: psb_howmany_int_heap integer(psb_ipk_) :: psb_howmany_int_heap
end function psb_howmany_int_heap end function psb_howmany_int_heap
function psb_howmany_real_idx_heap(heap) function psb_howmany_sreal_idx_heap(heap)
import :: psb_ipk_, psb_spk_, psb_dpk_ import :: psb_ipk_, psb_spk_, psb_dpk_
import :: psb_real_idx_heap import :: psb_sreal_idx_heap
type(psb_real_idx_heap), intent(in) :: heap type(psb_sreal_idx_heap), intent(in) :: heap
integer(psb_ipk_) :: psb_howmany_real_idx_heap integer(psb_ipk_) :: psb_howmany_sreal_idx_heap
end function psb_howmany_real_idx_heap end function psb_howmany_sreal_idx_heap
function psb_howmany_double_idx_heap(heap) function psb_howmany_dreal_idx_heap(heap)
import :: psb_ipk_, psb_spk_, psb_dpk_ import :: psb_ipk_, psb_spk_, psb_dpk_
import :: psb_double_idx_heap import :: psb_dreal_idx_heap
type(psb_double_idx_heap), intent(in) :: heap type(psb_dreal_idx_heap), intent(in) :: heap
integer(psb_ipk_) :: psb_howmany_double_idx_heap integer(psb_ipk_) :: psb_howmany_dreal_idx_heap
end function psb_howmany_double_idx_heap end function psb_howmany_dreal_idx_heap
function psb_howmany_int_idx_heap(heap) function psb_howmany_int_idx_heap(heap)
import :: psb_ipk_, psb_spk_, psb_dpk_ import :: psb_ipk_, psb_spk_, psb_dpk_
import :: psb_int_idx_heap import :: psb_int_idx_heap
@ -280,13 +280,13 @@ module psb_sort_mod
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: dir integer(psb_ipk_), intent(in), optional :: dir
end subroutine psb_init_int_heap end subroutine psb_init_int_heap
subroutine psb_init_real_idx_heap(heap,info,dir) subroutine psb_init_sreal_idx_heap(heap,info,dir)
import :: psb_ipk_, psb_spk_, psb_dpk_ import :: psb_ipk_, psb_spk_, psb_dpk_
import :: psb_real_idx_heap import :: psb_sreal_idx_heap
type(psb_real_idx_heap), intent(inout) :: heap type(psb_sreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: dir integer(psb_ipk_), intent(in), optional :: dir
end subroutine psb_init_real_idx_heap end subroutine psb_init_sreal_idx_heap
subroutine psb_init_int_idx_heap(heap,info,dir) subroutine psb_init_int_idx_heap(heap,info,dir)
import :: psb_ipk_, psb_spk_, psb_dpk_ import :: psb_ipk_, psb_spk_, psb_dpk_
import :: psb_int_idx_heap import :: psb_int_idx_heap
@ -308,13 +308,13 @@ module psb_sort_mod
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: dir integer(psb_ipk_), intent(in), optional :: dir
end subroutine psb_init_dcomplex_idx_heap end subroutine psb_init_dcomplex_idx_heap
subroutine psb_init_double_idx_heap(heap,info,dir) subroutine psb_init_dreal_idx_heap(heap,info,dir)
import :: psb_ipk_, psb_spk_, psb_dpk_ import :: psb_ipk_, psb_spk_, psb_dpk_
import :: psb_double_idx_heap import :: psb_dreal_idx_heap
type(psb_double_idx_heap), intent(inout) :: heap type(psb_dreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: dir integer(psb_ipk_), intent(in), optional :: dir
end subroutine psb_init_double_idx_heap end subroutine psb_init_dreal_idx_heap
end interface end interface
@ -326,20 +326,20 @@ module psb_sort_mod
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in) :: iout integer(psb_ipk_), intent(in) :: iout
end subroutine psb_dump_int_heap end subroutine psb_dump_int_heap
subroutine psb_dump_real_idx_heap(iout,heap,info) subroutine psb_dump_sreal_idx_heap(iout,heap,info)
import :: psb_ipk_, psb_spk_, psb_dpk_ import :: psb_ipk_, psb_spk_, psb_dpk_
import :: psb_real_idx_heap import :: psb_sreal_idx_heap
type(psb_real_idx_heap), intent(in) :: heap type(psb_sreal_idx_heap), intent(in) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in) :: iout integer(psb_ipk_), intent(in) :: iout
end subroutine psb_dump_real_idx_heap end subroutine psb_dump_sreal_idx_heap
subroutine psb_dump_double_idx_heap(iout,heap,info) subroutine psb_dump_dreal_idx_heap(iout,heap,info)
import :: psb_ipk_, psb_spk_, psb_dpk_ import :: psb_ipk_, psb_spk_, psb_dpk_
import :: psb_double_idx_heap import :: psb_dreal_idx_heap
type(psb_double_idx_heap), intent(in) :: heap type(psb_dreal_idx_heap), intent(in) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in) :: iout integer(psb_ipk_), intent(in) :: iout
end subroutine psb_dump_double_idx_heap end subroutine psb_dump_dreal_idx_heap
subroutine psb_dump_int_idx_heap(iout,heap,info) subroutine psb_dump_int_idx_heap(iout,heap,info)
import :: psb_ipk_, psb_spk_, psb_dpk_ import :: psb_ipk_, psb_spk_, psb_dpk_
import :: psb_int_idx_heap import :: psb_int_idx_heap
@ -378,20 +378,20 @@ module psb_sort_mod
type(psb_int_idx_heap), intent(inout) :: heap type(psb_int_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
end subroutine psb_insert_int_idx_heap end subroutine psb_insert_int_idx_heap
subroutine psb_insert_real_idx_heap(key,index,heap,info) subroutine psb_insert_sreal_idx_heap(key,index,heap,info)
import :: psb_spk_, psb_real_idx_heap, psb_ipk_ import :: psb_spk_, psb_sreal_idx_heap, psb_ipk_
real(psb_spk_), intent(in) :: key real(psb_spk_), intent(in) :: key
integer(psb_ipk_), intent(in) :: index integer(psb_ipk_), intent(in) :: index
type(psb_real_idx_heap), intent(inout) :: heap type(psb_sreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
end subroutine psb_insert_real_idx_heap end subroutine psb_insert_sreal_idx_heap
subroutine psb_insert_double_idx_heap(key,index,heap,info) subroutine psb_insert_dreal_idx_heap(key,index,heap,info)
import :: psb_dpk_, psb_double_idx_heap, psb_ipk_ import :: psb_dpk_, psb_dreal_idx_heap, psb_ipk_
real(psb_dpk_), intent(in) :: key real(psb_dpk_), intent(in) :: key
integer(psb_ipk_), intent(in) :: index integer(psb_ipk_), intent(in) :: index
type(psb_double_idx_heap), intent(inout) :: heap type(psb_dreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
end subroutine psb_insert_double_idx_heap end subroutine psb_insert_dreal_idx_heap
subroutine psb_insert_scomplex_idx_heap(key,index,heap,info) subroutine psb_insert_scomplex_idx_heap(key,index,heap,info)
import :: psb_spk_, psb_scomplex_idx_heap, psb_ipk_ import :: psb_spk_, psb_scomplex_idx_heap, psb_ipk_
complex(psb_spk_), intent(in) :: key complex(psb_spk_), intent(in) :: key
@ -420,18 +420,18 @@ module psb_sort_mod
integer(psb_ipk_), intent(out) :: index,info integer(psb_ipk_), intent(out) :: index,info
integer(psb_ipk_), intent(out) :: key integer(psb_ipk_), intent(out) :: key
end subroutine psb_int_idx_heap_get_first end subroutine psb_int_idx_heap_get_first
subroutine psb_real_idx_heap_get_first(key,index,heap,info) subroutine psb_sreal_idx_heap_get_first(key,index,heap,info)
import :: psb_spk_, psb_real_idx_heap, psb_ipk_ import :: psb_spk_, psb_sreal_idx_heap, psb_ipk_
type(psb_real_idx_heap), intent(inout) :: heap type(psb_sreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: index,info integer(psb_ipk_), intent(out) :: index,info
real(psb_spk_), intent(out) :: key real(psb_spk_), intent(out) :: key
end subroutine psb_real_idx_heap_get_first end subroutine psb_sreal_idx_heap_get_first
subroutine psb_double_idx_heap_get_first(key,index,heap,info) subroutine psb_dreal_idx_heap_get_first(key,index,heap,info)
import :: psb_dpk_, psb_double_idx_heap, psb_ipk_ import :: psb_dpk_, psb_dreal_idx_heap, psb_ipk_
type(psb_double_idx_heap), intent(inout) :: heap type(psb_dreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: index,info integer(psb_ipk_), intent(out) :: index,info
real(psb_dpk_), intent(out) :: key real(psb_dpk_), intent(out) :: key
end subroutine psb_double_idx_heap_get_first end subroutine psb_dreal_idx_heap_get_first
subroutine psb_scomplex_idx_heap_get_first(key,index,heap,info) subroutine psb_scomplex_idx_heap_get_first(key,index,heap,info)
import :: psb_spk_, psb_scomplex_idx_heap, psb_ipk_ import :: psb_spk_, psb_scomplex_idx_heap, psb_ipk_
type(psb_scomplex_idx_heap), intent(inout) :: heap type(psb_scomplex_idx_heap), intent(inout) :: heap
@ -588,47 +588,47 @@ module psb_sort_mod
end interface end interface
interface interface
subroutine psi_insert_real_idx_heap(key,index,last,heap,idxs,dir,info) subroutine psi_insert_sreal_idx_heap(key,index,last,heap,idxs,dir,info)
import :: psb_spk_, psb_ipk_ import :: psb_spk_, psb_ipk_
real(psb_spk_), intent(in) :: key real(psb_spk_), intent(in) :: key
integer(psb_ipk_), intent(in) :: index,dir integer(psb_ipk_), intent(in) :: index,dir
real(psb_spk_), intent(inout) :: heap(:) real(psb_spk_), intent(inout) :: heap(:)
integer(psb_ipk_), intent(inout) :: idxs(:),last integer(psb_ipk_), intent(inout) :: idxs(:),last
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
end subroutine psi_insert_real_idx_heap end subroutine psi_insert_sreal_idx_heap
end interface end interface
interface interface
subroutine psi_real_idx_heap_get_first(key,index,last,heap,idxs,dir,info) subroutine psi_sreal_idx_heap_get_first(key,index,last,heap,idxs,dir,info)
import :: psb_spk_, psb_ipk_ import :: psb_spk_, psb_ipk_
real(psb_spk_), intent(inout) :: heap(:) real(psb_spk_), intent(inout) :: heap(:)
integer(psb_ipk_), intent(out) :: index,info integer(psb_ipk_), intent(out) :: index,info
integer(psb_ipk_), intent(inout) :: last,idxs(:) integer(psb_ipk_), intent(inout) :: last,idxs(:)
integer(psb_ipk_), intent(in) :: dir integer(psb_ipk_), intent(in) :: dir
real(psb_spk_), intent(out) :: key real(psb_spk_), intent(out) :: key
end subroutine psi_real_idx_heap_get_first end subroutine psi_sreal_idx_heap_get_first
end interface end interface
interface interface
subroutine psi_insert_double_idx_heap(key,index,last,heap,idxs,dir,info) subroutine psi_insert_dreal_idx_heap(key,index,last,heap,idxs,dir,info)
import :: psb_dpk_, psb_ipk_ import :: psb_dpk_, psb_ipk_
real(psb_dpk_), intent(in) :: key real(psb_dpk_), intent(in) :: key
integer(psb_ipk_), intent(in) :: index,dir integer(psb_ipk_), intent(in) :: index,dir
real(psb_dpk_), intent(inout) :: heap(:) real(psb_dpk_), intent(inout) :: heap(:)
integer(psb_ipk_), intent(inout) :: idxs(:),last integer(psb_ipk_), intent(inout) :: idxs(:),last
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
end subroutine psi_insert_double_idx_heap end subroutine psi_insert_dreal_idx_heap
end interface end interface
interface interface
subroutine psi_double_idx_heap_get_first(key,index,last,heap,idxs,dir,info) subroutine psi_dreal_idx_heap_get_first(key,index,last,heap,idxs,dir,info)
import :: psb_dpk_, psb_ipk_ import :: psb_dpk_, psb_ipk_
real(psb_dpk_), intent(inout) :: heap(:) real(psb_dpk_), intent(inout) :: heap(:)
integer(psb_ipk_), intent(out) :: index,info integer(psb_ipk_), intent(out) :: index,info
integer(psb_ipk_), intent(inout) :: last,idxs(:) integer(psb_ipk_), intent(inout) :: last,idxs(:)
integer(psb_ipk_), intent(in) :: dir integer(psb_ipk_), intent(in) :: dir
real(psb_dpk_), intent(out) :: key real(psb_dpk_), intent(out) :: key
end subroutine psi_double_idx_heap_get_first end subroutine psi_dreal_idx_heap_get_first
end interface end interface
interface interface
@ -678,8 +678,8 @@ module psb_sort_mod
interface psb_free_heap interface psb_free_heap
module procedure psb_free_int_heap, psb_free_int_idx_heap,& module procedure psb_free_int_heap, psb_free_int_idx_heap,&
& psb_free_real_idx_heap, psb_free_scomplex_idx_heap, & & psb_free_sreal_idx_heap, psb_free_scomplex_idx_heap, &
& psb_free_double_idx_heap, psb_free_dcomplex_idx_heap & psb_free_dreal_idx_heap, psb_free_dcomplex_idx_heap
end interface end interface
contains contains
@ -694,27 +694,27 @@ contains
end subroutine psb_free_int_heap end subroutine psb_free_int_heap
subroutine psb_free_real_idx_heap(heap,info) subroutine psb_free_sreal_idx_heap(heap,info)
implicit none implicit none
type(psb_real_idx_heap), intent(inout) :: heap type(psb_sreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
info=psb_success_ info=psb_success_
if (allocated(heap%keys)) deallocate(heap%keys,stat=info) if (allocated(heap%keys)) deallocate(heap%keys,stat=info)
if ((info == psb_success_).and.(allocated(heap%idxs))) deallocate(heap%idxs,stat=info) if ((info == psb_success_).and.(allocated(heap%idxs))) deallocate(heap%idxs,stat=info)
end subroutine psb_free_real_idx_heap end subroutine psb_free_sreal_idx_heap
subroutine psb_free_double_idx_heap(heap,info) subroutine psb_free_dreal_idx_heap(heap,info)
implicit none implicit none
type(psb_double_idx_heap), intent(inout) :: heap type(psb_dreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
info=psb_success_ info=psb_success_
if (allocated(heap%keys)) deallocate(heap%keys,stat=info) if (allocated(heap%keys)) deallocate(heap%keys,stat=info)
if ((info == psb_success_).and.(allocated(heap%idxs))) deallocate(heap%idxs,stat=info) if ((info == psb_success_).and.(allocated(heap%idxs))) deallocate(heap%idxs,stat=info)
end subroutine psb_free_double_idx_heap end subroutine psb_free_dreal_idx_heap
subroutine psb_free_int_idx_heap(heap,info) subroutine psb_free_int_idx_heap(heap,info)
implicit none implicit none

@ -1175,13 +1175,13 @@ subroutine shsort(x,ix,dir,flag)
do i=1, n do i=1, n
key = x(i) key = x(i)
index = ix(i) index = ix(i)
call psi_insert_real_idx_heap(key,index,l,x,ix,dir_,info) call psi_insert_sreal_idx_heap(key,index,l,x,ix,dir_,info)
if (l /= i) then if (l /= i) then
write(psb_err_unit,*) 'Mismatch while heapifying ! ' write(psb_err_unit,*) 'Mismatch while heapifying ! '
end if end if
end do end do
do i=n, 2, -1 do i=n, 2, -1
call psi_real_idx_heap_get_first(key,index,l,x,ix,dir_,info) call psi_sreal_idx_heap_get_first(key,index,l,x,ix,dir_,info)
if (l /= i-1) then if (l /= i-1) then
write(psb_err_unit,*) 'Mismatch while pulling out of heap ',l,i write(psb_err_unit,*) 'Mismatch while pulling out of heap ',l,i
end if end if
@ -1288,13 +1288,13 @@ subroutine dhsort(x,ix,dir,flag)
do i=1, n do i=1, n
key = x(i) key = x(i)
index = ix(i) index = ix(i)
call psi_insert_double_idx_heap(key,index,l,x,ix,dir_,info) call psi_insert_dreal_idx_heap(key,index,l,x,ix,dir_,info)
if (l /= i) then if (l /= i) then
write(psb_err_unit,*) 'Mismatch while heapifying ! ' write(psb_err_unit,*) 'Mismatch while heapifying ! '
end if end if
end do end do
do i=n, 2, -1 do i=n, 2, -1
call psi_double_idx_heap_get_first(key,index,l,x,ix,dir_,info) call psi_dreal_idx_heap_get_first(key,index,l,x,ix,dir_,info)
if (l /= i-1) then if (l /= i-1) then
write(psb_err_unit,*) 'Mismatch while pulling out of heap ',l,i write(psb_err_unit,*) 'Mismatch while pulling out of heap ',l,i
end if end if
@ -1659,19 +1659,19 @@ subroutine psb_int_heap_get_first(key,heap,info)
end subroutine psb_int_heap_get_first end subroutine psb_int_heap_get_first
function psb_howmany_real_idx_heap(heap) function psb_howmany_sreal_idx_heap(heap)
use psb_sort_mod, psb_protect_name => psb_howmany_real_idx_heap use psb_sort_mod, psb_protect_name => psb_howmany_sreal_idx_heap
implicit none implicit none
type(psb_real_idx_heap), intent(in) :: heap type(psb_sreal_idx_heap), intent(in) :: heap
integer(psb_ipk_) :: psb_howmany_real_idx_heap integer(psb_ipk_) :: psb_howmany_sreal_idx_heap
psb_howmany_real_idx_heap = heap%last psb_howmany_sreal_idx_heap = heap%last
end function psb_howmany_real_idx_heap end function psb_howmany_sreal_idx_heap
subroutine psb_init_real_idx_heap(heap,info,dir) subroutine psb_init_sreal_idx_heap(heap,info,dir)
use psb_sort_mod, psb_protect_name => psb_init_real_idx_heap use psb_sort_mod, psb_protect_name => psb_init_sreal_idx_heap
use psb_realloc_mod use psb_realloc_mod
implicit none implicit none
type(psb_real_idx_heap), intent(inout) :: heap type(psb_sreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: dir integer(psb_ipk_), intent(in), optional :: dir
@ -1693,12 +1693,12 @@ subroutine psb_init_real_idx_heap(heap,info,dir)
call psb_ensure_size(psb_heap_resize,heap%keys,info) call psb_ensure_size(psb_heap_resize,heap%keys,info)
call psb_ensure_size(psb_heap_resize,heap%idxs,info) call psb_ensure_size(psb_heap_resize,heap%idxs,info)
return return
end subroutine psb_init_real_idx_heap end subroutine psb_init_sreal_idx_heap
subroutine psb_dump_real_idx_heap(iout,heap,info) subroutine psb_dump_sreal_idx_heap(iout,heap,info)
use psb_sort_mod, psb_protect_name => psb_dump_real_idx_heap use psb_sort_mod, psb_protect_name => psb_dump_sreal_idx_heap
implicit none implicit none
type(psb_real_idx_heap), intent(in) :: heap type(psb_sreal_idx_heap), intent(in) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in) :: iout integer(psb_ipk_), intent(in) :: iout
@ -1723,16 +1723,16 @@ subroutine psb_dump_real_idx_heap(iout,heap,info)
write(iout,*) heap%idxs(1:heap%last) write(iout,*) heap%idxs(1:heap%last)
end if end if
end if end if
end subroutine psb_dump_real_idx_heap end subroutine psb_dump_sreal_idx_heap
subroutine psb_insert_real_idx_heap(key,index,heap,info) subroutine psb_insert_sreal_idx_heap(key,index,heap,info)
use psb_sort_mod, psb_protect_name => psb_insert_real_idx_heap use psb_sort_mod, psb_protect_name => psb_insert_sreal_idx_heap
use psb_realloc_mod use psb_realloc_mod
implicit none implicit none
real(psb_spk_), intent(in) :: key real(psb_spk_), intent(in) :: key
integer(psb_ipk_), intent(in) :: index integer(psb_ipk_), intent(in) :: index
type(psb_real_idx_heap), intent(inout) :: heap type(psb_sreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
info = psb_success_ info = psb_success_
@ -1751,42 +1751,42 @@ subroutine psb_insert_real_idx_heap(key,index,heap,info)
return return
end if end if
call psi_insert_real_idx_heap(key,index,& call psi_insert_sreal_idx_heap(key,index,&
& heap%last,heap%keys,heap%idxs,heap%dir,info) & heap%last,heap%keys,heap%idxs,heap%dir,info)
return return
end subroutine psb_insert_real_idx_heap end subroutine psb_insert_sreal_idx_heap
subroutine psb_real_idx_heap_get_first(key,index,heap,info) subroutine psb_sreal_idx_heap_get_first(key,index,heap,info)
use psb_sort_mod, psb_protect_name => psb_real_idx_heap_get_first use psb_sort_mod, psb_protect_name => psb_sreal_idx_heap_get_first
implicit none implicit none
type(psb_real_idx_heap), intent(inout) :: heap type(psb_sreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: index,info integer(psb_ipk_), intent(out) :: index,info
real(psb_spk_), intent(out) :: key real(psb_spk_), intent(out) :: key
info = psb_success_ info = psb_success_
call psi_real_idx_heap_get_first(key,index,& call psi_sreal_idx_heap_get_first(key,index,&
& heap%last,heap%keys,heap%idxs,heap%dir,info) & heap%last,heap%keys,heap%idxs,heap%dir,info)
return return
end subroutine psb_real_idx_heap_get_first end subroutine psb_sreal_idx_heap_get_first
function psb_howmany_double_idx_heap(heap) function psb_howmany_dreal_idx_heap(heap)
use psb_sort_mod, psb_protect_name => psb_howmany_double_idx_heap use psb_sort_mod, psb_protect_name => psb_howmany_dreal_idx_heap
implicit none implicit none
type(psb_double_idx_heap), intent(in) :: heap type(psb_dreal_idx_heap), intent(in) :: heap
integer(psb_ipk_) :: psb_howmany_double_idx_heap integer(psb_ipk_) :: psb_howmany_dreal_idx_heap
psb_howmany_double_idx_heap = heap%last psb_howmany_dreal_idx_heap = heap%last
end function psb_howmany_double_idx_heap end function psb_howmany_dreal_idx_heap
subroutine psb_init_double_idx_heap(heap,info,dir) subroutine psb_init_dreal_idx_heap(heap,info,dir)
use psb_sort_mod, psb_protect_name => psb_init_double_idx_heap use psb_sort_mod, psb_protect_name => psb_init_dreal_idx_heap
use psb_realloc_mod use psb_realloc_mod
implicit none implicit none
type(psb_double_idx_heap), intent(inout) :: heap type(psb_dreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: dir integer(psb_ipk_), intent(in), optional :: dir
@ -1808,12 +1808,12 @@ subroutine psb_init_double_idx_heap(heap,info,dir)
call psb_ensure_size(psb_heap_resize,heap%keys,info) call psb_ensure_size(psb_heap_resize,heap%keys,info)
call psb_ensure_size(psb_heap_resize,heap%idxs,info) call psb_ensure_size(psb_heap_resize,heap%idxs,info)
return return
end subroutine psb_init_double_idx_heap end subroutine psb_init_dreal_idx_heap
subroutine psb_dump_double_idx_heap(iout,heap,info) subroutine psb_dump_dreal_idx_heap(iout,heap,info)
use psb_sort_mod, psb_protect_name => psb_dump_double_idx_heap use psb_sort_mod, psb_protect_name => psb_dump_dreal_idx_heap
implicit none implicit none
type(psb_double_idx_heap), intent(in) :: heap type(psb_dreal_idx_heap), intent(in) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in) :: iout integer(psb_ipk_), intent(in) :: iout
@ -1838,16 +1838,16 @@ subroutine psb_dump_double_idx_heap(iout,heap,info)
write(iout,*) heap%idxs(1:heap%last) write(iout,*) heap%idxs(1:heap%last)
end if end if
end if end if
end subroutine psb_dump_double_idx_heap end subroutine psb_dump_dreal_idx_heap
subroutine psb_insert_double_idx_heap(key,index,heap,info) subroutine psb_insert_dreal_idx_heap(key,index,heap,info)
use psb_sort_mod, psb_protect_name => psb_insert_double_idx_heap use psb_sort_mod, psb_protect_name => psb_insert_dreal_idx_heap
use psb_realloc_mod use psb_realloc_mod
implicit none implicit none
real(psb_dpk_), intent(in) :: key real(psb_dpk_), intent(in) :: key
integer(psb_ipk_), intent(in) :: index integer(psb_ipk_), intent(in) :: index
type(psb_double_idx_heap), intent(inout) :: heap type(psb_dreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
info = psb_success_ info = psb_success_
@ -1866,27 +1866,27 @@ subroutine psb_insert_double_idx_heap(key,index,heap,info)
return return
end if end if
call psi_insert_double_idx_heap(key,index,& call psi_insert_dreal_idx_heap(key,index,&
& heap%last,heap%keys,heap%idxs,heap%dir,info) & heap%last,heap%keys,heap%idxs,heap%dir,info)
return return
end subroutine psb_insert_double_idx_heap end subroutine psb_insert_dreal_idx_heap
subroutine psb_double_idx_heap_get_first(key,index,heap,info) subroutine psb_dreal_idx_heap_get_first(key,index,heap,info)
use psb_sort_mod, psb_protect_name => psb_double_idx_heap_get_first use psb_sort_mod, psb_protect_name => psb_dreal_idx_heap_get_first
implicit none implicit none
type(psb_double_idx_heap), intent(inout) :: heap type(psb_dreal_idx_heap), intent(inout) :: heap
integer(psb_ipk_), intent(out) :: index,info integer(psb_ipk_), intent(out) :: index,info
real(psb_dpk_), intent(out) :: key real(psb_dpk_), intent(out) :: key
info = psb_success_ info = psb_success_
call psi_double_idx_heap_get_first(key,index,& call psi_dreal_idx_heap_get_first(key,index,&
& heap%last,heap%keys,heap%idxs,heap%dir,info) & heap%last,heap%keys,heap%idxs,heap%dir,info)
return return
end subroutine psb_double_idx_heap_get_first end subroutine psb_dreal_idx_heap_get_first
function psb_howmany_int_idx_heap(heap) function psb_howmany_int_idx_heap(heap)
use psb_sort_mod, psb_protect_name => psb_howmany_int_idx_heap use psb_sort_mod, psb_protect_name => psb_howmany_int_idx_heap
@ -3655,8 +3655,8 @@ subroutine psi_int_idx_heap_get_first(key,index,last,heap,idxs,dir,info)
return return
end subroutine psi_int_idx_heap_get_first end subroutine psi_int_idx_heap_get_first
subroutine psi_insert_real_idx_heap(key,index,last,heap,idxs,dir,info) subroutine psi_insert_sreal_idx_heap(key,index,last,heap,idxs,dir,info)
use psb_sort_mod, psb_protect_name => psi_insert_real_idx_heap use psb_sort_mod, psb_protect_name => psi_insert_sreal_idx_heap
implicit none implicit none
! !
@ -3775,10 +3775,10 @@ subroutine psi_insert_real_idx_heap(key,index,last,heap,idxs,dir,info)
end select end select
return return
end subroutine psi_insert_real_idx_heap end subroutine psi_insert_sreal_idx_heap
subroutine psi_real_idx_heap_get_first(key,index,last,heap,idxs,dir,info) subroutine psi_sreal_idx_heap_get_first(key,index,last,heap,idxs,dir,info)
use psb_sort_mod, psb_protect_name => psi_real_idx_heap_get_first use psb_sort_mod, psb_protect_name => psi_sreal_idx_heap_get_first
implicit none implicit none
real(psb_spk_), intent(inout) :: heap(:) real(psb_spk_), intent(inout) :: heap(:)
@ -3912,11 +3912,11 @@ subroutine psi_real_idx_heap_get_first(key,index,last,heap,idxs,dir,info)
end select end select
return return
end subroutine psi_real_idx_heap_get_first end subroutine psi_sreal_idx_heap_get_first
subroutine psi_insert_double_idx_heap(key,index,last,heap,idxs,dir,info) subroutine psi_insert_dreal_idx_heap(key,index,last,heap,idxs,dir,info)
use psb_sort_mod, psb_protect_name => psi_insert_double_idx_heap use psb_sort_mod, psb_protect_name => psi_insert_dreal_idx_heap
implicit none implicit none
! !
@ -4035,10 +4035,10 @@ subroutine psi_insert_double_idx_heap(key,index,last,heap,idxs,dir,info)
end select end select
return return
end subroutine psi_insert_double_idx_heap end subroutine psi_insert_dreal_idx_heap
subroutine psi_double_idx_heap_get_first(key,index,last,heap,idxs,dir,info) subroutine psi_dreal_idx_heap_get_first(key,index,last,heap,idxs,dir,info)
use psb_sort_mod, psb_protect_name => psi_double_idx_heap_get_first use psb_sort_mod, psb_protect_name => psi_dreal_idx_heap_get_first
implicit none implicit none
real(psb_dpk_), intent(inout) :: heap(:) real(psb_dpk_), intent(inout) :: heap(:)
@ -4172,7 +4172,7 @@ subroutine psi_double_idx_heap_get_first(key,index,last,heap,idxs,dir,info)
end select end select
return return
end subroutine psi_double_idx_heap_get_first end subroutine psi_dreal_idx_heap_get_first
subroutine psi_insert_scomplex_idx_heap(key,index,last,heap,idxs,dir,info) subroutine psi_insert_scomplex_idx_heap(key,index,last,heap,idxs,dir,info)

@ -38,7 +38,7 @@ subroutine psb_c_bjac_dump(prec,info,prefix,head)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
character(len=*), intent(in), optional :: prefix,head character(len=*), intent(in), optional :: prefix,head
integer(psb_ipk_) :: i, j, il1, iln, lname, lev integer(psb_ipk_) :: i, j, il1, iln, lname, lev
integer(psb_ipk_) :: ictxt,iam, np integer(psb_mpik_) :: ictxt,iam, np
character(len=80) :: prefix_ character(len=80) :: prefix_
character(len=120) :: fname ! len should be at least 20 more than character(len=120) :: fname ! len should be at least 20 more than
@ -87,7 +87,8 @@ subroutine psb_c_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work)
integer(psb_ipk_) :: n_row,n_col integer(psb_ipk_) :: n_row,n_col
complex(psb_spk_), pointer :: ww(:), aux(:) complex(psb_spk_), pointer :: ww(:), aux(:)
type(psb_c_vect_type) :: wv, wv1 type(psb_c_vect_type) :: wv, wv1
integer(psb_ipk_) :: ictxt,np,me, err_act, ierr(5) integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act, ierr(5)
integer(psb_ipk_) :: debug_level, debug_unit integer(psb_ipk_) :: debug_level, debug_unit
character :: trans_ character :: trans_
character(len=20) :: name='c_bjac_prec_apply' character(len=20) :: name='c_bjac_prec_apply'
@ -243,7 +244,8 @@ subroutine psb_c_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work)
! Local variables ! Local variables
integer(psb_ipk_) :: n_row,n_col integer(psb_ipk_) :: n_row,n_col
complex(psb_spk_), pointer :: ww(:), aux(:) complex(psb_spk_), pointer :: ww(:), aux(:)
integer(psb_ipk_) :: ictxt,np,me, err_act, ierr(5) integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act, ierr(5)
integer(psb_ipk_) :: debug_level, debug_unit integer(psb_ipk_) :: debug_level, debug_unit
character :: trans_ character :: trans_
character(len=20) :: name='c_bjac_prec_apply' character(len=20) :: name='c_bjac_prec_apply'
@ -442,7 +444,7 @@ subroutine psb_c_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold)
type(psb_c_csr_sparse_mat), allocatable :: lf, uf type(psb_c_csr_sparse_mat), allocatable :: lf, uf
complex(psb_spk_), allocatable :: dd(:) complex(psb_spk_), allocatable :: dd(:)
integer(psb_ipk_) :: nztota, err_act, n_row, nrow_a,n_col, nhalo integer(psb_ipk_) :: nztota, err_act, n_row, nrow_a,n_col, nhalo
integer(psb_ipk_) :: ictxt,np,me integer(psb_mpik_) :: ictxt,np,me
character(len=20) :: name='c_bjac_precbld' character(len=20) :: name='c_bjac_precbld'
character(len=20) :: ch_err character(len=20) :: ch_err

@ -76,7 +76,8 @@ subroutine psb_c_apply2_vect(prec,x,y,desc_data,info,trans,work)
character :: trans_ character :: trans_
complex(psb_spk_), pointer :: work_(:) complex(psb_spk_), pointer :: work_(:)
integer(psb_ipk_) :: ictxt,np,me,err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
character(len=20) :: name character(len=20) :: name
name = 'psb_c_apply2v' name = 'psb_c_apply2v'
@ -150,7 +151,8 @@ subroutine psb_c_apply1_vect(prec,x,desc_data,info,trans,work)
type(psb_c_vect_type) :: ww type(psb_c_vect_type) :: ww
character :: trans_ character :: trans_
complex(psb_spk_), pointer :: work_(:) complex(psb_spk_), pointer :: work_(:)
integer(psb_ipk_) :: ictxt,np,me,err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
character(len=20) :: name character(len=20) :: name
name = 'psb_c_apply1v' name = 'psb_c_apply1v'
@ -226,7 +228,8 @@ subroutine psb_c_apply2v(prec,x,y,desc_data,info,trans,work)
character :: trans_ character :: trans_
complex(psb_spk_), pointer :: work_(:) complex(psb_spk_), pointer :: work_(:)
integer(psb_ipk_) :: ictxt,np,me,err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
character(len=20) :: name character(len=20) :: name
name='psb_c_apply2v' name='psb_c_apply2v'
@ -294,7 +297,8 @@ subroutine psb_c_apply1v(prec,x,desc_data,info,trans)
character(len=1), optional :: trans character(len=1), optional :: trans
character :: trans_ character :: trans_
integer(psb_ipk_) :: ictxt,np,me, err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
complex(psb_spk_), pointer :: WW(:), w1(:) complex(psb_spk_), pointer :: WW(:), w1(:)
character(len=20) :: name character(len=20) :: name
name='psb_c_apply1v' name='psb_c_apply1v'

@ -36,17 +36,17 @@ subroutine psb_cprecbld(a,desc_a,p,info,upd,amold,afmt,vmold)
Implicit None Implicit None
type(psb_cspmat_type), intent(in), target :: a type(psb_cspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
type(psb_cprec_type),intent(inout) :: p type(psb_cprec_type),intent(inout) :: p
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
character, intent(in), optional :: upd character, intent(in), optional :: upd
character(len=*), intent(in), optional :: afmt character(len=*), intent(in), optional :: afmt
class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_sparse_mat), intent(in), optional :: amold
class(psb_c_base_vect_type), intent(in), optional :: vmold class(psb_c_base_vect_type), intent(in), optional :: vmold
! Local scalars ! Local scalars
integer(psb_ipk_) :: err, n_row, n_col,ictxt,& integer(psb_mpik_) :: ictxt, me,np
& me,np,mglob, err_act integer(psb_ipk_) :: err, n_row, n_col,mglob, err_act
integer(psb_ipk_) :: int_err(5) integer(psb_ipk_) :: int_err(5)
character :: upd_ character :: upd_

@ -38,7 +38,7 @@ subroutine psb_d_bjac_dump(prec,info,prefix,head)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
character(len=*), intent(in), optional :: prefix,head character(len=*), intent(in), optional :: prefix,head
integer(psb_ipk_) :: i, j, il1, iln, lname, lev integer(psb_ipk_) :: i, j, il1, iln, lname, lev
integer(psb_ipk_) :: ictxt,iam, np integer(psb_mpik_) :: ictxt,iam, np
character(len=80) :: prefix_ character(len=80) :: prefix_
character(len=120) :: fname ! len should be at least 20 more than character(len=120) :: fname ! len should be at least 20 more than
@ -87,7 +87,8 @@ subroutine psb_d_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work)
integer(psb_ipk_) :: n_row,n_col integer(psb_ipk_) :: n_row,n_col
real(psb_dpk_), pointer :: ww(:), aux(:) real(psb_dpk_), pointer :: ww(:), aux(:)
type(psb_d_vect_type) :: wv, wv1 type(psb_d_vect_type) :: wv, wv1
integer(psb_ipk_) :: ictxt,np,me, err_act, ierr(5) integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act, ierr(5)
integer(psb_ipk_) :: debug_level, debug_unit integer(psb_ipk_) :: debug_level, debug_unit
character :: trans_ character :: trans_
character(len=20) :: name='d_bjac_prec_apply' character(len=20) :: name='d_bjac_prec_apply'
@ -243,7 +244,8 @@ subroutine psb_d_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work)
! Local variables ! Local variables
integer(psb_ipk_) :: n_row,n_col integer(psb_ipk_) :: n_row,n_col
real(psb_dpk_), pointer :: ww(:), aux(:) real(psb_dpk_), pointer :: ww(:), aux(:)
integer(psb_ipk_) :: ictxt,np,me, err_act, ierr(5) integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act, ierr(5)
integer(psb_ipk_) :: debug_level, debug_unit integer(psb_ipk_) :: debug_level, debug_unit
character :: trans_ character :: trans_
character(len=20) :: name='d_bjac_prec_apply' character(len=20) :: name='d_bjac_prec_apply'
@ -442,7 +444,7 @@ subroutine psb_d_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold)
type(psb_d_csr_sparse_mat), allocatable :: lf, uf type(psb_d_csr_sparse_mat), allocatable :: lf, uf
real(psb_dpk_), allocatable :: dd(:) real(psb_dpk_), allocatable :: dd(:)
integer(psb_ipk_) :: nztota, err_act, n_row, nrow_a,n_col, nhalo integer(psb_ipk_) :: nztota, err_act, n_row, nrow_a,n_col, nhalo
integer(psb_ipk_) :: ictxt,np,me integer(psb_mpik_) :: ictxt,np,me
character(len=20) :: name='d_bjac_precbld' character(len=20) :: name='d_bjac_precbld'
character(len=20) :: ch_err character(len=20) :: ch_err

@ -76,7 +76,8 @@ subroutine psb_d_apply2_vect(prec,x,y,desc_data,info,trans,work)
character :: trans_ character :: trans_
real(psb_dpk_), pointer :: work_(:) real(psb_dpk_), pointer :: work_(:)
integer(psb_ipk_) :: ictxt,np,me,err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
character(len=20) :: name character(len=20) :: name
name = 'psb_d_apply2v' name = 'psb_d_apply2v'
@ -150,7 +151,8 @@ subroutine psb_d_apply1_vect(prec,x,desc_data,info,trans,work)
type(psb_d_vect_type) :: ww type(psb_d_vect_type) :: ww
character :: trans_ character :: trans_
real(psb_dpk_), pointer :: work_(:) real(psb_dpk_), pointer :: work_(:)
integer(psb_ipk_) :: ictxt,np,me,err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
character(len=20) :: name character(len=20) :: name
name = 'psb_d_apply1v' name = 'psb_d_apply1v'
@ -226,7 +228,8 @@ subroutine psb_d_apply2v(prec,x,y,desc_data,info,trans,work)
character :: trans_ character :: trans_
real(psb_dpk_), pointer :: work_(:) real(psb_dpk_), pointer :: work_(:)
integer(psb_ipk_) :: ictxt,np,me,err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
character(len=20) :: name character(len=20) :: name
name='psb_d_apply2v' name='psb_d_apply2v'
@ -294,7 +297,8 @@ subroutine psb_d_apply1v(prec,x,desc_data,info,trans)
character(len=1), optional :: trans character(len=1), optional :: trans
character :: trans_ character :: trans_
integer(psb_ipk_) :: ictxt,np,me, err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
real(psb_dpk_), pointer :: WW(:), w1(:) real(psb_dpk_), pointer :: WW(:), w1(:)
character(len=20) :: name character(len=20) :: name
name='psb_d_apply1v' name='psb_d_apply1v'

@ -35,18 +35,18 @@ subroutine psb_dprecbld(a,desc_a,p,info,upd,amold,afmt,vmold)
use psb_d_prec_type use psb_d_prec_type
Implicit None Implicit None
type(psb_dspmat_type), intent(in), target :: a type(psb_dspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
type(psb_dprec_type),intent(inout) :: p type(psb_dprec_type),intent(inout) :: p
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
character, intent(in), optional :: upd character, intent(in), optional :: upd
character(len=*), intent(in), optional :: afmt character(len=*), intent(in), optional :: afmt
class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_sparse_mat), intent(in), optional :: amold
class(psb_d_base_vect_type), intent(in), optional :: vmold class(psb_d_base_vect_type), intent(in), optional :: vmold
! Local scalars ! Local scalars
integer(psb_ipk_) :: err, n_row, n_col,ictxt,& integer(psb_mpik_) :: ictxt, me,np
& me,np,mglob, err_act integer(psb_ipk_) :: err, n_row, n_col,mglob, err_act
integer(psb_ipk_) :: int_err(5) integer(psb_ipk_) :: int_err(5)
character :: upd_ character :: upd_

@ -38,7 +38,7 @@ subroutine psb_s_bjac_dump(prec,info,prefix,head)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
character(len=*), intent(in), optional :: prefix,head character(len=*), intent(in), optional :: prefix,head
integer(psb_ipk_) :: i, j, il1, iln, lname, lev integer(psb_ipk_) :: i, j, il1, iln, lname, lev
integer(psb_ipk_) :: ictxt,iam, np integer(psb_mpik_) :: ictxt,iam, np
character(len=80) :: prefix_ character(len=80) :: prefix_
character(len=120) :: fname ! len should be at least 20 more than character(len=120) :: fname ! len should be at least 20 more than
@ -87,7 +87,8 @@ subroutine psb_s_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work)
integer(psb_ipk_) :: n_row,n_col integer(psb_ipk_) :: n_row,n_col
real(psb_spk_), pointer :: ww(:), aux(:) real(psb_spk_), pointer :: ww(:), aux(:)
type(psb_s_vect_type) :: wv, wv1 type(psb_s_vect_type) :: wv, wv1
integer(psb_ipk_) :: ictxt,np,me, err_act, ierr(5) integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act, ierr(5)
integer(psb_ipk_) :: debug_level, debug_unit integer(psb_ipk_) :: debug_level, debug_unit
character :: trans_ character :: trans_
character(len=20) :: name='s_bjac_prec_apply' character(len=20) :: name='s_bjac_prec_apply'
@ -243,7 +244,8 @@ subroutine psb_s_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work)
! Local variables ! Local variables
integer(psb_ipk_) :: n_row,n_col integer(psb_ipk_) :: n_row,n_col
real(psb_spk_), pointer :: ww(:), aux(:) real(psb_spk_), pointer :: ww(:), aux(:)
integer(psb_ipk_) :: ictxt,np,me, err_act, ierr(5) integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act, ierr(5)
integer(psb_ipk_) :: debug_level, debug_unit integer(psb_ipk_) :: debug_level, debug_unit
character :: trans_ character :: trans_
character(len=20) :: name='s_bjac_prec_apply' character(len=20) :: name='s_bjac_prec_apply'
@ -442,7 +444,7 @@ subroutine psb_s_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold)
type(psb_s_csr_sparse_mat), allocatable :: lf, uf type(psb_s_csr_sparse_mat), allocatable :: lf, uf
real(psb_spk_), allocatable :: dd(:) real(psb_spk_), allocatable :: dd(:)
integer(psb_ipk_) :: nztota, err_act, n_row, nrow_a,n_col, nhalo integer(psb_ipk_) :: nztota, err_act, n_row, nrow_a,n_col, nhalo
integer(psb_ipk_) :: ictxt,np,me integer(psb_mpik_) :: ictxt,np,me
character(len=20) :: name='s_bjac_precbld' character(len=20) :: name='s_bjac_precbld'
character(len=20) :: ch_err character(len=20) :: ch_err

@ -76,7 +76,8 @@ subroutine psb_s_apply2_vect(prec,x,y,desc_data,info,trans,work)
character :: trans_ character :: trans_
real(psb_spk_), pointer :: work_(:) real(psb_spk_), pointer :: work_(:)
integer(psb_ipk_) :: ictxt,np,me,err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
character(len=20) :: name character(len=20) :: name
name = 'psb_s_apply2v' name = 'psb_s_apply2v'
@ -150,7 +151,8 @@ subroutine psb_s_apply1_vect(prec,x,desc_data,info,trans,work)
type(psb_s_vect_type) :: ww type(psb_s_vect_type) :: ww
character :: trans_ character :: trans_
real(psb_spk_), pointer :: work_(:) real(psb_spk_), pointer :: work_(:)
integer(psb_ipk_) :: ictxt,np,me,err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
character(len=20) :: name character(len=20) :: name
name = 'psb_s_apply1v' name = 'psb_s_apply1v'
@ -226,7 +228,8 @@ subroutine psb_s_apply2v(prec,x,y,desc_data,info,trans,work)
character :: trans_ character :: trans_
real(psb_spk_), pointer :: work_(:) real(psb_spk_), pointer :: work_(:)
integer(psb_ipk_) :: ictxt,np,me,err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
character(len=20) :: name character(len=20) :: name
name='psb_s_apply2v' name='psb_s_apply2v'
@ -294,7 +297,8 @@ subroutine psb_s_apply1v(prec,x,desc_data,info,trans)
character(len=1), optional :: trans character(len=1), optional :: trans
character :: trans_ character :: trans_
integer(psb_ipk_) :: ictxt,np,me, err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
real(psb_spk_), pointer :: WW(:), w1(:) real(psb_spk_), pointer :: WW(:), w1(:)
character(len=20) :: name character(len=20) :: name
name='psb_s_apply1v' name='psb_s_apply1v'

@ -35,18 +35,18 @@ subroutine psb_sprecbld(a,desc_a,p,info,upd,amold,afmt,vmold)
use psb_s_prec_type use psb_s_prec_type
Implicit None Implicit None
type(psb_sspmat_type), intent(in), target :: a type(psb_sspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
type(psb_sprec_type),intent(inout) :: p type(psb_sprec_type),intent(inout) :: p
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
character, intent(in), optional :: upd character, intent(in), optional :: upd
character(len=*), intent(in), optional :: afmt character(len=*), intent(in), optional :: afmt
class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_sparse_mat), intent(in), optional :: amold
class(psb_s_base_vect_type), intent(in), optional :: vmold class(psb_s_base_vect_type), intent(in), optional :: vmold
! Local scalars ! Local scalars
integer(psb_ipk_) :: err, n_row, n_col,ictxt,& integer(psb_mpik_) :: ictxt, me,np
& me,np,mglob, err_act integer(psb_ipk_) :: err, n_row, n_col,mglob, err_act
integer(psb_ipk_) :: int_err(5) integer(psb_ipk_) :: int_err(5)
character :: upd_ character :: upd_

@ -38,7 +38,7 @@ subroutine psb_z_bjac_dump(prec,info,prefix,head)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
character(len=*), intent(in), optional :: prefix,head character(len=*), intent(in), optional :: prefix,head
integer(psb_ipk_) :: i, j, il1, iln, lname, lev integer(psb_ipk_) :: i, j, il1, iln, lname, lev
integer(psb_ipk_) :: ictxt,iam, np integer(psb_mpik_) :: ictxt,iam, np
character(len=80) :: prefix_ character(len=80) :: prefix_
character(len=120) :: fname ! len should be at least 20 more than character(len=120) :: fname ! len should be at least 20 more than
@ -87,7 +87,8 @@ subroutine psb_z_bjac_apply_vect(alpha,prec,x,beta,y,desc_data,info,trans,work)
integer(psb_ipk_) :: n_row,n_col integer(psb_ipk_) :: n_row,n_col
complex(psb_dpk_), pointer :: ww(:), aux(:) complex(psb_dpk_), pointer :: ww(:), aux(:)
type(psb_z_vect_type) :: wv, wv1 type(psb_z_vect_type) :: wv, wv1
integer(psb_ipk_) :: ictxt,np,me, err_act, ierr(5) integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act, ierr(5)
integer(psb_ipk_) :: debug_level, debug_unit integer(psb_ipk_) :: debug_level, debug_unit
character :: trans_ character :: trans_
character(len=20) :: name='z_bjac_prec_apply' character(len=20) :: name='z_bjac_prec_apply'
@ -243,7 +244,8 @@ subroutine psb_z_bjac_apply(alpha,prec,x,beta,y,desc_data,info,trans,work)
! Local variables ! Local variables
integer(psb_ipk_) :: n_row,n_col integer(psb_ipk_) :: n_row,n_col
complex(psb_dpk_), pointer :: ww(:), aux(:) complex(psb_dpk_), pointer :: ww(:), aux(:)
integer(psb_ipk_) :: ictxt,np,me, err_act, ierr(5) integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act, ierr(5)
integer(psb_ipk_) :: debug_level, debug_unit integer(psb_ipk_) :: debug_level, debug_unit
character :: trans_ character :: trans_
character(len=20) :: name='z_bjac_prec_apply' character(len=20) :: name='z_bjac_prec_apply'
@ -442,7 +444,7 @@ subroutine psb_z_bjac_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold)
type(psb_z_csr_sparse_mat), allocatable :: lf, uf type(psb_z_csr_sparse_mat), allocatable :: lf, uf
complex(psb_dpk_), allocatable :: dd(:) complex(psb_dpk_), allocatable :: dd(:)
integer(psb_ipk_) :: nztota, err_act, n_row, nrow_a,n_col, nhalo integer(psb_ipk_) :: nztota, err_act, n_row, nrow_a,n_col, nhalo
integer(psb_ipk_) :: ictxt,np,me integer(psb_mpik_) :: ictxt,np,me
character(len=20) :: name='z_bjac_precbld' character(len=20) :: name='z_bjac_precbld'
character(len=20) :: ch_err character(len=20) :: ch_err

@ -76,7 +76,8 @@ subroutine psb_z_apply2_vect(prec,x,y,desc_data,info,trans,work)
character :: trans_ character :: trans_
complex(psb_dpk_), pointer :: work_(:) complex(psb_dpk_), pointer :: work_(:)
integer(psb_ipk_) :: ictxt,np,me,err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
character(len=20) :: name character(len=20) :: name
name = 'psb_z_apply2v' name = 'psb_z_apply2v'
@ -150,7 +151,8 @@ subroutine psb_z_apply1_vect(prec,x,desc_data,info,trans,work)
type(psb_z_vect_type) :: ww type(psb_z_vect_type) :: ww
character :: trans_ character :: trans_
complex(psb_dpk_), pointer :: work_(:) complex(psb_dpk_), pointer :: work_(:)
integer(psb_ipk_) :: ictxt,np,me,err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
character(len=20) :: name character(len=20) :: name
name = 'psb_z_apply1v' name = 'psb_z_apply1v'
@ -226,7 +228,8 @@ subroutine psb_z_apply2v(prec,x,y,desc_data,info,trans,work)
character :: trans_ character :: trans_
complex(psb_dpk_), pointer :: work_(:) complex(psb_dpk_), pointer :: work_(:)
integer(psb_ipk_) :: ictxt,np,me,err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
character(len=20) :: name character(len=20) :: name
name='psb_z_apply2v' name='psb_z_apply2v'
@ -294,7 +297,8 @@ subroutine psb_z_apply1v(prec,x,desc_data,info,trans)
character(len=1), optional :: trans character(len=1), optional :: trans
character :: trans_ character :: trans_
integer(psb_ipk_) :: ictxt,np,me, err_act integer(psb_mpik_) :: ictxt,np,me
integer(psb_ipk_) :: err_act
complex(psb_dpk_), pointer :: WW(:), w1(:) complex(psb_dpk_), pointer :: WW(:), w1(:)
character(len=20) :: name character(len=20) :: name
name='psb_z_apply1v' name='psb_z_apply1v'

@ -36,17 +36,17 @@ subroutine psb_zprecbld(a,desc_a,p,info,upd,amold,afmt,vmold)
Implicit None Implicit None
type(psb_zspmat_type), intent(in), target :: a type(psb_zspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
type(psb_zprec_type),intent(inout) :: p type(psb_zprec_type),intent(inout) :: p
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
character, intent(in), optional :: upd character, intent(in), optional :: upd
character(len=*), intent(in), optional :: afmt character(len=*), intent(in), optional :: afmt
class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_sparse_mat), intent(in), optional :: amold
class(psb_z_base_vect_type), intent(in), optional :: vmold class(psb_z_base_vect_type), intent(in), optional :: vmold
! Local scalars ! Local scalars
integer(psb_ipk_) :: err, n_row, n_col,ictxt,& integer(psb_mpik_) :: ictxt, me,np
& me,np,mglob, err_act integer(psb_ipk_) :: err, n_row, n_col,mglob, err_act
integer(psb_ipk_) :: int_err(5) integer(psb_ipk_) :: int_err(5)
character :: upd_ character :: upd_

@ -36,7 +36,7 @@
module psb_c_base_prec_mod module psb_c_base_prec_mod
! Reduces size of .mod file. ! Reduces size of .mod file.
use psb_base_mod, only : psb_spk_, psb_ipk_, psb_long_int_k_,& use psb_base_mod, only : psb_spk_, psb_ipk_, psb_long_int_k_, psb_mpik_,&
& psb_desc_type, psb_sizeof, psb_free, psb_cdfree, psb_errpush, psb_act_abort_,& & psb_desc_type, psb_sizeof, psb_free, psb_cdfree, psb_errpush, psb_act_abort_,&
& psb_sizeof_int, psb_sizeof_long_int, psb_sizeof_sp, psb_sizeof_dp, & & psb_sizeof_int, psb_sizeof_long_int, psb_sizeof_sp, psb_sizeof_dp, &
& psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus, psb_success_,& & psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus, psb_success_,&
@ -46,7 +46,7 @@ module psb_c_base_prec_mod
use psb_prec_const_mod use psb_prec_const_mod
type psb_c_base_prec_type type psb_c_base_prec_type
integer(psb_ipk_) :: ictxt integer(psb_mpik_) :: ictxt
contains contains
procedure, pass(prec) :: set_ctxt => psb_c_base_set_ctxt procedure, pass(prec) :: set_ctxt => psb_c_base_set_ctxt
procedure, pass(prec) :: get_ctxt => psb_c_base_get_ctxt procedure, pass(prec) :: get_ctxt => psb_c_base_get_ctxt
@ -407,7 +407,7 @@ contains
subroutine psb_c_base_set_ctxt(prec,ictxt) subroutine psb_c_base_set_ctxt(prec,ictxt)
implicit none implicit none
class(psb_c_base_prec_type), intent(inout) :: prec class(psb_c_base_prec_type), intent(inout) :: prec
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
prec%ictxt = ictxt prec%ictxt = ictxt
@ -423,7 +423,7 @@ contains
function psb_c_base_get_ctxt(prec) result(val) function psb_c_base_get_ctxt(prec) result(val)
class(psb_c_base_prec_type), intent(in) :: prec class(psb_c_base_prec_type), intent(in) :: prec
integer(psb_ipk_) :: val integer(psb_mpik_) :: val
val = prec%ictxt val = prec%ictxt
return return

@ -36,7 +36,7 @@
module psb_d_base_prec_mod module psb_d_base_prec_mod
! Reduces size of .mod file. ! Reduces size of .mod file.
use psb_base_mod, only : psb_dpk_, psb_ipk_, psb_long_int_k_,& use psb_base_mod, only : psb_dpk_, psb_ipk_, psb_long_int_k_, psb_mpik_,&
& psb_desc_type, psb_sizeof, psb_free, psb_cdfree, psb_errpush, psb_act_abort_,& & psb_desc_type, psb_sizeof, psb_free, psb_cdfree, psb_errpush, psb_act_abort_,&
& psb_sizeof_int, psb_sizeof_long_int, psb_sizeof_sp, psb_sizeof_dp, & & psb_sizeof_int, psb_sizeof_long_int, psb_sizeof_sp, psb_sizeof_dp, &
& psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus, psb_success_,& & psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus, psb_success_,&
@ -46,7 +46,7 @@ module psb_d_base_prec_mod
use psb_prec_const_mod use psb_prec_const_mod
type psb_d_base_prec_type type psb_d_base_prec_type
integer(psb_ipk_) :: ictxt integer(psb_mpik_) :: ictxt
contains contains
procedure, pass(prec) :: set_ctxt => psb_d_base_set_ctxt procedure, pass(prec) :: set_ctxt => psb_d_base_set_ctxt
procedure, pass(prec) :: get_ctxt => psb_d_base_get_ctxt procedure, pass(prec) :: get_ctxt => psb_d_base_get_ctxt
@ -407,7 +407,7 @@ contains
subroutine psb_d_base_set_ctxt(prec,ictxt) subroutine psb_d_base_set_ctxt(prec,ictxt)
implicit none implicit none
class(psb_d_base_prec_type), intent(inout) :: prec class(psb_d_base_prec_type), intent(inout) :: prec
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
prec%ictxt = ictxt prec%ictxt = ictxt
@ -423,7 +423,7 @@ contains
function psb_d_base_get_ctxt(prec) result(val) function psb_d_base_get_ctxt(prec) result(val)
class(psb_d_base_prec_type), intent(in) :: prec class(psb_d_base_prec_type), intent(in) :: prec
integer(psb_ipk_) :: val integer(psb_mpik_) :: val
val = prec%ictxt val = prec%ictxt
return return

@ -36,7 +36,7 @@
module psb_s_base_prec_mod module psb_s_base_prec_mod
! Reduces size of .mod file. ! Reduces size of .mod file.
use psb_base_mod, only : psb_spk_, psb_ipk_, psb_long_int_k_,& use psb_base_mod, only : psb_spk_, psb_ipk_, psb_long_int_k_, psb_mpik_,&
& psb_desc_type, psb_sizeof, psb_free, psb_cdfree, psb_errpush, psb_act_abort_,& & psb_desc_type, psb_sizeof, psb_free, psb_cdfree, psb_errpush, psb_act_abort_,&
& psb_sizeof_int, psb_sizeof_long_int, psb_sizeof_sp, psb_sizeof_dp, & & psb_sizeof_int, psb_sizeof_long_int, psb_sizeof_sp, psb_sizeof_dp, &
& psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus, psb_success_,& & psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus, psb_success_,&
@ -46,7 +46,7 @@ module psb_s_base_prec_mod
use psb_prec_const_mod use psb_prec_const_mod
type psb_s_base_prec_type type psb_s_base_prec_type
integer(psb_ipk_) :: ictxt integer(psb_mpik_) :: ictxt
contains contains
procedure, pass(prec) :: set_ctxt => psb_s_base_set_ctxt procedure, pass(prec) :: set_ctxt => psb_s_base_set_ctxt
procedure, pass(prec) :: get_ctxt => psb_s_base_get_ctxt procedure, pass(prec) :: get_ctxt => psb_s_base_get_ctxt
@ -407,7 +407,7 @@ contains
subroutine psb_s_base_set_ctxt(prec,ictxt) subroutine psb_s_base_set_ctxt(prec,ictxt)
implicit none implicit none
class(psb_s_base_prec_type), intent(inout) :: prec class(psb_s_base_prec_type), intent(inout) :: prec
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
prec%ictxt = ictxt prec%ictxt = ictxt
@ -423,7 +423,7 @@ contains
function psb_s_base_get_ctxt(prec) result(val) function psb_s_base_get_ctxt(prec) result(val)
class(psb_s_base_prec_type), intent(in) :: prec class(psb_s_base_prec_type), intent(in) :: prec
integer(psb_ipk_) :: val integer(psb_mpik_) :: val
val = prec%ictxt val = prec%ictxt
return return

@ -36,7 +36,7 @@
module psb_z_base_prec_mod module psb_z_base_prec_mod
! Reduces size of .mod file. ! Reduces size of .mod file.
use psb_base_mod, only : psb_dpk_, psb_ipk_, psb_long_int_k_,& use psb_base_mod, only : psb_dpk_, psb_ipk_, psb_long_int_k_, psb_mpik_,&
& psb_desc_type, psb_sizeof, psb_free, psb_cdfree, psb_errpush, psb_act_abort_,& & psb_desc_type, psb_sizeof, psb_free, psb_cdfree, psb_errpush, psb_act_abort_,&
& psb_sizeof_int, psb_sizeof_long_int, psb_sizeof_sp, psb_sizeof_dp, & & psb_sizeof_int, psb_sizeof_long_int, psb_sizeof_sp, psb_sizeof_dp, &
& psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus, psb_success_,& & psb_erractionsave, psb_erractionrestore, psb_error, psb_get_errstatus, psb_success_,&
@ -46,7 +46,7 @@ module psb_z_base_prec_mod
use psb_prec_const_mod use psb_prec_const_mod
type psb_z_base_prec_type type psb_z_base_prec_type
integer(psb_ipk_) :: ictxt integer(psb_mpik_) :: ictxt
contains contains
procedure, pass(prec) :: set_ctxt => psb_z_base_set_ctxt procedure, pass(prec) :: set_ctxt => psb_z_base_set_ctxt
procedure, pass(prec) :: get_ctxt => psb_z_base_get_ctxt procedure, pass(prec) :: get_ctxt => psb_z_base_get_ctxt
@ -407,7 +407,7 @@ contains
subroutine psb_z_base_set_ctxt(prec,ictxt) subroutine psb_z_base_set_ctxt(prec,ictxt)
implicit none implicit none
class(psb_z_base_prec_type), intent(inout) :: prec class(psb_z_base_prec_type), intent(inout) :: prec
integer(psb_ipk_), intent(in) :: ictxt integer(psb_mpik_), intent(in) :: ictxt
prec%ictxt = ictxt prec%ictxt = ictxt
@ -423,7 +423,7 @@ contains
function psb_z_base_get_ctxt(prec) result(val) function psb_z_base_get_ctxt(prec) result(val)
class(psb_z_base_prec_type), intent(in) :: prec class(psb_z_base_prec_type), intent(in) :: prec
integer(psb_ipk_) :: val integer(psb_mpik_) :: val
val = prec%ictxt val = prec%ictxt
return return

Loading…
Cancel
Save