mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-17 03:12:15 +00:00
Merge branch 'merge-paraggr' into merge-paraggr-newops
# Conflicts: # docs/html/index.html # docs/html/userhtml.css # docs/html/userhtml.html # docs/psblas-3.7.pdf # docs/src/psbrout.tex
This commit is contained in:
@@ -261,7 +261,7 @@ psi_z_mod.o: desc/psb_desc_mod.o serial/psb_z_vect_mod.o comm/psi_z_comm_a_mod.o
|
||||
psi_mod.o: psb_penv_mod.o desc/psb_desc_mod.o auxil/psi_serial_mod.o serial/psb_serial_mod.o\
|
||||
psi_i_mod.o psi_l_mod.o psi_s_mod.o psi_d_mod.o psi_c_mod.o psi_z_mod.o
|
||||
|
||||
desc/psb_indx_map_mod.o: desc/psb_desc_const_mod.o psb_error_mod.o psb_penv_mod.o psb_realloc_mod.o
|
||||
desc/psb_indx_map_mod.o: desc/psb_desc_const_mod.o psb_error_mod.o psb_penv_mod.o psb_realloc_mod.o auxil/psb_sort_mod.o
|
||||
desc/psb_hash_map_mod.o desc/psb_list_map_mod.o desc/psb_repl_map_mod.o desc/psb_gen_block_map_mod.o:\
|
||||
desc/psb_indx_map_mod.o desc/psb_desc_const_mod.o \
|
||||
auxil/psb_sort_mod.o psb_penv_mod.o
|
||||
|
||||
@@ -233,6 +233,9 @@ module psb_desc_mod
|
||||
procedure, pass(desc) :: get_global_rows => psb_cd_get_global_rows
|
||||
procedure, pass(desc) :: get_global_cols => psb_cd_get_global_cols
|
||||
procedure, pass(desc) :: get_global_indices => psb_cd_get_global_indices
|
||||
procedure, pass(desc) :: get_p_adjcncy => cd_get_p_adjcncy
|
||||
procedure, pass(desc) :: set_p_adjcncy => cd_set_p_adjcncy
|
||||
procedure, pass(desc) :: xtnd_p_adjcncy => cd_xtnd_p_adjcncy
|
||||
procedure, pass(desc) :: a_get_list => psb_cd_get_list
|
||||
procedure, pass(desc) :: v_get_list => psb_cd_v_get_list
|
||||
generic, public :: get_list => a_get_list, v_get_list
|
||||
@@ -282,6 +285,14 @@ module psb_desc_mod
|
||||
module procedure psb_cdfree
|
||||
end interface psb_free
|
||||
|
||||
interface psb_cd_set_maxspace
|
||||
module procedure psb_cd_set_maxspace
|
||||
end interface psb_cd_set_maxspace
|
||||
|
||||
interface psb_cd_get_maxspace
|
||||
module procedure psb_cd_get_maxspace
|
||||
end interface psb_cd_get_maxspace
|
||||
|
||||
interface psb_cd_set_large_threshold
|
||||
module procedure psb_i_cd_set_large_threshold
|
||||
end interface psb_cd_set_large_threshold
|
||||
@@ -298,7 +309,8 @@ module psb_desc_mod
|
||||
& cd_g2ls2_ins, cd_g2lv1_ins, cd_g2lv2_ins, cd_fnd_owner
|
||||
|
||||
|
||||
integer(psb_lpk_), private, save :: cd_large_threshold=psb_default_large_threshold
|
||||
integer(psb_lpk_), private, save :: cd_large_threshold = psb_default_large_threshold
|
||||
integer(psb_ipk_), private, save :: cd_maxspace = -1
|
||||
|
||||
|
||||
contains
|
||||
@@ -347,10 +359,25 @@ contains
|
||||
|
||||
function psb_cd_get_large_threshold() result(val)
|
||||
implicit none
|
||||
integer(psb_ipk_) :: val
|
||||
integer(psb_lpk_) :: val
|
||||
val = cd_large_threshold
|
||||
end function psb_cd_get_large_threshold
|
||||
|
||||
|
||||
subroutine psb_cd_set_maxspace(ith)
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: ith
|
||||
if (ith > 0) then
|
||||
cd_maxspace = ith
|
||||
end if
|
||||
end subroutine psb_cd_set_maxspace
|
||||
|
||||
function psb_cd_get_maxspace() result(val)
|
||||
implicit none
|
||||
integer(psb_ipk_) :: val
|
||||
val = cd_maxspace
|
||||
end function psb_cd_get_maxspace
|
||||
|
||||
function psb_cd_is_large_size(m) result(val)
|
||||
use psb_penv_mod
|
||||
|
||||
@@ -557,9 +584,7 @@ contains
|
||||
|
||||
end function psb_cd_get_global_indices
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function cd_get_fmt(desc) result(val)
|
||||
implicit none
|
||||
character(len=5) :: val
|
||||
@@ -620,6 +645,35 @@ contains
|
||||
end function psb_cd_get_mpic
|
||||
|
||||
|
||||
function cd_get_p_adjcncy(desc) result(val)
|
||||
implicit none
|
||||
integer(psb_ipk_), allocatable :: val(:)
|
||||
class(psb_desc_type), intent(in) :: desc
|
||||
|
||||
if (allocated(desc%indxmap)) then
|
||||
val = desc%indxmap%get_p_adjcncy()
|
||||
endif
|
||||
|
||||
end function cd_get_p_adjcncy
|
||||
|
||||
subroutine cd_set_p_adjcncy(desc,val)
|
||||
implicit none
|
||||
class(psb_desc_type), intent(inout) :: desc
|
||||
integer(psb_ipk_), intent(in) :: val(:)
|
||||
if (allocated(desc%indxmap)) then
|
||||
call desc%indxmap%xtnd_p_adjcncy(val)
|
||||
endif
|
||||
end subroutine cd_set_p_adjcncy
|
||||
|
||||
subroutine cd_xtnd_p_adjcncy(desc,val)
|
||||
implicit none
|
||||
class(psb_desc_type), intent(inout) :: desc
|
||||
integer(psb_ipk_), intent(in) :: val(:)
|
||||
if (allocated(desc%indxmap)) then
|
||||
call desc%indxmap%xtnd_p_adjcncy(val)
|
||||
endif
|
||||
end subroutine cd_xtnd_p_adjcncy
|
||||
|
||||
subroutine psb_cd_set_ovl_asb(desc,info)
|
||||
!
|
||||
! Change state of a descriptor into ovl_build.
|
||||
@@ -1716,10 +1770,10 @@ contains
|
||||
subroutine cd_fnd_owner(idx,iprc,desc,info)
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
|
||||
class(psb_desc_type), intent(in) :: desc
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_desc_type), intent(inout) :: desc
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_) :: err_act
|
||||
character(len=20) :: name='cd_fnd_owner'
|
||||
logical, parameter :: debug=.false.
|
||||
|
||||
@@ -1934,10 +1934,10 @@ contains
|
||||
subroutine block_fnd_owner(idx,iprc,idxmap,info)
|
||||
use psb_penv_mod
|
||||
implicit none
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
|
||||
class(psb_gen_block_map), intent(in) :: idxmap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_gen_block_map), intent(inout) :: idxmap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_) :: ictxt, iam, np, nv, ip, i
|
||||
integer(psb_lpk_) :: tidx
|
||||
|
||||
@@ -2005,7 +2005,7 @@ contains
|
||||
idxmap%local_cols = nl
|
||||
idxmap%ictxt = ictxt
|
||||
idxmap%state = psb_desc_bld_
|
||||
call psb_get_mpicomm(ictxt,idxmap%mpic)
|
||||
idxmap%mpic = psb_get_mpi_comm(ictxt)
|
||||
idxmap%min_glob_row = vnl(iam)+1
|
||||
idxmap%max_glob_row = vnl(iam+1)
|
||||
call move_alloc(vnl,idxmap%vnl)
|
||||
|
||||
@@ -124,9 +124,9 @@ contains
|
||||
return
|
||||
end if
|
||||
|
||||
idxmap%ictxt = ictxt
|
||||
idxmap%state = psb_desc_bld_
|
||||
call psb_get_mpicomm(ictxt,idxmap%mpic)
|
||||
idxmap%ictxt = ictxt
|
||||
idxmap%state = psb_desc_bld_
|
||||
idxmap%mpic = psb_get_mpi_comm(ictxt)
|
||||
|
||||
nl = 0
|
||||
do i=1, n
|
||||
@@ -154,10 +154,10 @@ contains
|
||||
use psb_penv_mod
|
||||
use psb_sort_mod
|
||||
implicit none
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
|
||||
class(psb_glist_map), intent(in) :: idxmap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_glist_map), intent(inout) :: idxmap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_mpk_) :: ictxt, iam, np
|
||||
integer(psb_lpk_) :: nv, i, ngp
|
||||
|
||||
|
||||
@@ -961,7 +961,7 @@ contains
|
||||
idxmap%local_cols = nl
|
||||
idxmap%ictxt = ictxt
|
||||
idxmap%state = psb_desc_bld_
|
||||
call psb_get_mpicomm(ictxt,idxmap%mpic)
|
||||
idxmap%mpic = psb_get_mpi_comm(ictxt)
|
||||
|
||||
lc2 = int(1.5*nl)
|
||||
call psb_realloc(lc2,idxmap%loc_to_glob,info)
|
||||
|
||||
@@ -127,7 +127,9 @@ module psb_indx_map_mod
|
||||
integer(psb_ipk_), allocatable :: oracle(:,:)
|
||||
!> Halo owners
|
||||
integer(psb_ipk_), allocatable :: halo_owner(:)
|
||||
|
||||
!> Adjacency list for processes
|
||||
integer(psb_ipk_), allocatable :: p_adjcncy(:)
|
||||
|
||||
contains
|
||||
|
||||
procedure, pass(idxmap) :: get_state => base_get_state
|
||||
@@ -144,6 +146,8 @@ module psb_indx_map_mod
|
||||
procedure, pass(idxmap) :: get_lr => base_get_lr
|
||||
procedure, pass(idxmap) :: get_lc => base_get_lc
|
||||
|
||||
procedure, pass(idxmap) :: get_p_adjcncy => base_get_p_adjcncy
|
||||
|
||||
|
||||
procedure, pass(idxmap) :: set_gri => base_set_gri
|
||||
procedure, pass(idxmap) :: set_gci => base_set_gci
|
||||
@@ -155,6 +159,9 @@ module psb_indx_map_mod
|
||||
procedure, pass(idxmap) :: set_lr => base_set_lr
|
||||
procedure, pass(idxmap) :: set_lc => base_set_lc
|
||||
|
||||
procedure, pass(idxmap) :: set_p_adjcncy => base_set_p_adjcncy
|
||||
procedure, pass(idxmap) :: xtnd_p_adjcncy => base_xtnd_p_adjcncy
|
||||
|
||||
procedure, pass(idxmap) :: set_ctxt => base_set_ctxt
|
||||
procedure, pass(idxmap) :: set_mpic => base_set_mpic
|
||||
procedure, pass(idxmap) :: get_ctxt => base_get_ctxt
|
||||
@@ -216,7 +223,7 @@ module psb_indx_map_mod
|
||||
procedure, pass(idxmap) :: fnd_halo_owner_v => base_fnd_halo_owner_v
|
||||
generic, public :: fnd_halo_owner => fnd_halo_owner_s, fnd_halo_owner_v
|
||||
|
||||
procedure, pass(idxmap) :: fnd_owner => psb_indx_map_fnd_owner
|
||||
procedure, pass(idxmap) :: fnd_owner => psi_indx_map_fnd_owner
|
||||
procedure, pass(idxmap) :: init_vl => base_init_vl
|
||||
generic, public :: init => init_vl
|
||||
|
||||
@@ -238,9 +245,10 @@ module psb_indx_map_mod
|
||||
& base_lg2lv2_ins, base_init_vl, base_is_null,&
|
||||
& base_row_extendable, base_clone, base_cpy, base_reinit, &
|
||||
& base_set_halo_owner, base_get_halo_owner, &
|
||||
& base_fnd_halo_owner_s, base_fnd_halo_owner_v
|
||||
& base_fnd_halo_owner_s, base_fnd_halo_owner_v,&
|
||||
& base_get_p_adjcncy, base_set_p_adjcncy, base_xtnd_p_adjcncy
|
||||
|
||||
!> Function: psb_indx_map_fnd_owner
|
||||
!> Function: psi_indx_map_fnd_owner
|
||||
!! \memberof psb_indx_map
|
||||
!! \brief Find the process owning indices
|
||||
!!
|
||||
@@ -259,16 +267,70 @@ module psb_indx_map_mod
|
||||
!!
|
||||
|
||||
interface
|
||||
subroutine psb_indx_map_fnd_owner(idx,iprc,idxmap,info)
|
||||
subroutine psi_indx_map_fnd_owner(idx,iprc,idxmap,info)
|
||||
import :: psb_indx_map, psb_ipk_, psb_lpk_
|
||||
implicit none
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
|
||||
class(psb_indx_map), intent(in) :: idxmap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_indx_map_fnd_owner
|
||||
class(psb_indx_map), intent(inout) :: idxmap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psi_indx_map_fnd_owner
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine psi_a2a_fnd_owner(idx,iprc,idxmap,info)
|
||||
import :: psb_indx_map, psb_ipk_, psb_lpk_
|
||||
implicit none
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
|
||||
class(psb_indx_map), intent(in) :: idxmap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psi_a2a_fnd_owner
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine psi_adjcncy_fnd_owner(idx,iprc,adj,idxmap,info)
|
||||
import :: psb_indx_map, psb_ipk_, psb_lpk_
|
||||
implicit none
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
|
||||
integer(psb_ipk_), allocatable, intent(inout) :: adj(:)
|
||||
class(psb_indx_map), intent(in) :: idxmap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psi_adjcncy_fnd_owner
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info)
|
||||
import :: psb_indx_map, psb_ipk_, psb_lpk_
|
||||
implicit none
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
|
||||
class(psb_indx_map), intent(inout) :: idxmap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psi_graph_fnd_owner
|
||||
end interface
|
||||
|
||||
integer, parameter :: psi_symm_flag_norv_ = 0
|
||||
integer, parameter :: psi_symm_flag_inrv_ = 1
|
||||
interface psi_symm_dep_list
|
||||
subroutine psi_symm_dep_list_inrv(rvsz,adj,ictxt,info)
|
||||
import :: psb_indx_map, psb_ipk_, psb_lpk_, psb_mpk_
|
||||
implicit none
|
||||
integer(psb_mpk_), intent(inout) :: rvsz(0:)
|
||||
integer(psb_ipk_), allocatable, intent(inout) :: adj(:)
|
||||
integer(psb_ipk_), intent(in) :: ictxt
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psi_symm_dep_list_inrv
|
||||
subroutine psi_symm_dep_list_norv(adj,ictxt,info)
|
||||
import :: psb_indx_map, psb_ipk_, psb_lpk_, psb_mpk_
|
||||
implicit none
|
||||
integer(psb_ipk_), allocatable, intent(inout) :: adj(:)
|
||||
integer(psb_ipk_), intent(in) :: ictxt
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psi_symm_dep_list_norv
|
||||
end interface psi_symm_dep_list
|
||||
|
||||
contains
|
||||
|
||||
|
||||
@@ -331,6 +393,16 @@ contains
|
||||
|
||||
end function base_get_lc
|
||||
|
||||
function base_get_p_adjcncy(idxmap) result(val)
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
class(psb_indx_map), intent(in) :: idxmap
|
||||
integer(psb_ipk_), allocatable :: val(:)
|
||||
integer(psb_ipk_) :: info
|
||||
|
||||
call psb_safe_ab_cpy(idxmap%p_adjcncy,val,info)
|
||||
|
||||
end function base_get_p_adjcncy
|
||||
|
||||
function base_get_ctxt(idxmap) result(val)
|
||||
implicit none
|
||||
@@ -416,6 +488,35 @@ contains
|
||||
idxmap%local_cols = val
|
||||
end subroutine base_set_lc
|
||||
|
||||
subroutine base_set_p_adjcncy(idxmap,val)
|
||||
use psb_realloc_mod
|
||||
use psb_sort_mod
|
||||
implicit none
|
||||
class(psb_indx_map), intent(inout) :: idxmap
|
||||
integer(psb_ipk_), intent(in) :: val(:)
|
||||
|
||||
call idxmap%xtnd_p_adjcncy(val)
|
||||
|
||||
end subroutine base_set_p_adjcncy
|
||||
|
||||
subroutine base_xtnd_p_adjcncy(idxmap,val)
|
||||
use psb_realloc_mod
|
||||
use psb_sort_mod
|
||||
implicit none
|
||||
class(psb_indx_map), intent(inout) :: idxmap
|
||||
integer(psb_ipk_), intent(in) :: val(:)
|
||||
integer(psb_ipk_) :: info, nv, nx
|
||||
|
||||
nv = size(val)
|
||||
nx = psb_size(idxmap%p_adjcncy)
|
||||
call psb_realloc(nv+nx,idxmap%p_adjcncy,info)
|
||||
idxmap%p_adjcncy(nx+1:nx+nv) = val(1:nv)
|
||||
nx = size(idxmap%p_adjcncy)
|
||||
call psb_msort_unique(idxmap%p_adjcncy,nx,dir=psb_sort_up_)
|
||||
call psb_realloc(nx,idxmap%p_adjcncy,info)
|
||||
|
||||
end subroutine base_xtnd_p_adjcncy
|
||||
|
||||
subroutine base_set_mpic(idxmap,val)
|
||||
implicit none
|
||||
class(psb_indx_map), intent(inout) :: idxmap
|
||||
@@ -1244,6 +1345,8 @@ contains
|
||||
& call psb_safe_ab_cpy(idxmap%oracle,outmap%oracle,info)
|
||||
if (info == psb_success_)&
|
||||
& call psb_safe_ab_cpy(idxmap%halo_owner,outmap%halo_owner,info)
|
||||
if (info == psb_success_)&
|
||||
& call psb_safe_ab_cpy(idxmap%p_adjcncy,outmap%p_adjcncy,info)
|
||||
|
||||
if (info /= 0) goto 9999
|
||||
|
||||
|
||||
@@ -1117,9 +1117,9 @@ contains
|
||||
return
|
||||
end if
|
||||
|
||||
idxmap%ictxt = ictxt
|
||||
idxmap%state = psb_desc_bld_
|
||||
call psb_get_mpicomm(ictxt,idxmap%mpic)
|
||||
idxmap%ictxt = ictxt
|
||||
idxmap%state = psb_desc_bld_
|
||||
idxmap%mpic = psb_get_mpi_comm(ictxt)
|
||||
do i=1, n
|
||||
idxmap%glob_to_loc(i) = -1
|
||||
end do
|
||||
|
||||
@@ -699,10 +699,10 @@ contains
|
||||
subroutine repl_fnd_owner(idx,iprc,idxmap,info)
|
||||
use psb_penv_mod
|
||||
implicit none
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_lpk_), intent(in) :: idx(:)
|
||||
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
|
||||
class(psb_repl_map), intent(in) :: idxmap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_repl_map), intent(inout) :: idxmap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_) :: nv
|
||||
integer(psb_mpk_) :: ictxt, iam, np
|
||||
|
||||
@@ -746,7 +746,7 @@ contains
|
||||
idxmap%local_cols = nl
|
||||
idxmap%ictxt = ictxt
|
||||
idxmap%state = psb_desc_bld_
|
||||
call psb_get_mpicomm(ictxt,idxmap%mpic)
|
||||
idxmap%mpic = psb_get_mpi_comm(ictxt)
|
||||
call idxmap%set_state(psb_desc_bld_)
|
||||
|
||||
end subroutine repl_init
|
||||
|
||||
@@ -563,16 +563,29 @@ contains
|
||||
end subroutine psb_info_mpik
|
||||
|
||||
|
||||
subroutine psb_get_mpicomm(ictxt,comm)
|
||||
function psb_get_mpi_comm(ictxt) result(comm)
|
||||
integer(psb_mpk_) :: ictxt, comm
|
||||
|
||||
comm = ictxt
|
||||
end function psb_get_mpi_comm
|
||||
|
||||
function psb_get_mpi_rank(ictxt,id) result(rank)
|
||||
integer(psb_mpk_) :: rank,ictxt,id
|
||||
|
||||
rank = id
|
||||
end function psb_get_mpi_rank
|
||||
|
||||
|
||||
subroutine psb_get_mpicomm(ictxt,comm)
|
||||
integer(psb_mpk_) :: ictxt, comm
|
||||
|
||||
comm = psb_get_mpi_comm(ictxt)
|
||||
end subroutine psb_get_mpicomm
|
||||
|
||||
subroutine psb_get_rank(rank,ictxt,id)
|
||||
integer(psb_mpk_) :: rank,ictxt,id
|
||||
|
||||
rank = id
|
||||
rank = psb_get_mpi_rank(ictxt,id)
|
||||
end subroutine psb_get_rank
|
||||
|
||||
|
||||
|
||||
@@ -309,5 +309,8 @@ module psb_const_mod
|
||||
integer(psb_ipk_), parameter, public :: psb_err_alloc_request_=4025
|
||||
integer(psb_ipk_), parameter, public :: psb_err_from_subroutine_non_=4011
|
||||
integer(psb_ipk_), parameter, public :: psb_err_invalid_istop_=5001
|
||||
integer(psb_ipk_), parameter, public :: psb_err_invalid_irst_ =5002
|
||||
integer(psb_ipk_), parameter, public :: psb_err_invalid_preci_=5003
|
||||
integer(psb_ipk_), parameter, public :: psb_err_invalid_preca_=5004
|
||||
|
||||
end module psb_const_mod
|
||||
|
||||
@@ -1043,12 +1043,17 @@ contains
|
||||
achmsg(1) = tmpmsg
|
||||
write(achmsg(2),'("Invalid ISTOP: ",i0)')e_e_d(1)
|
||||
|
||||
case(5002)
|
||||
case(psb_err_invalid_irst_)
|
||||
allocate(achmsg(2))
|
||||
achmsg(1) = tmpmsg
|
||||
write(achmsg(2),'("Invalid IRST: ",i0)')e_e_d(1)
|
||||
|
||||
case(psb_err_invalid_preci_)
|
||||
allocate(achmsg(2))
|
||||
achmsg(1) = tmpmsg
|
||||
write(achmsg(2),'("Invalid PREC: ",i0)')e_e_d(1)
|
||||
|
||||
case(5003)
|
||||
case(psb_err_invalid_preca_)
|
||||
allocate(achmsg(2))
|
||||
achmsg(1) = tmpmsg
|
||||
write(achmsg(2),'("Invalid PREC: ",a3)')a_e_d(1:3)
|
||||
|
||||
@@ -115,15 +115,15 @@ module psi_i_mod
|
||||
|
||||
interface psi_extract_dep_list
|
||||
subroutine psi_i_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,&
|
||||
& length_dl,np,dl_lda,mode,info)
|
||||
& length_dl,dl_lda,mode,info)
|
||||
import
|
||||
implicit none
|
||||
logical :: is_bld, is_upd
|
||||
integer(psb_ipk_) :: ictxt
|
||||
integer(psb_ipk_) :: dl_lda,mode
|
||||
integer(psb_ipk_) :: desc_str(*),dep_list(dl_lda,0:np),length_dl(0:np)
|
||||
integer(psb_ipk_) :: np
|
||||
integer(psb_ipk_) :: info
|
||||
logical, intent(in) :: is_bld, is_upd
|
||||
integer(psb_ipk_), intent(in) :: ictxt, mode
|
||||
integer(psb_ipk_), intent(out) :: dl_lda
|
||||
integer(psb_ipk_), intent(in) :: desc_str(*)
|
||||
integer(psb_ipk_), allocatable, intent(out) :: dep_list(:,:), length_dl(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psi_i_extract_dep_list
|
||||
end interface
|
||||
|
||||
|
||||
@@ -37,13 +37,12 @@ Module psb_c_tools_mod
|
||||
use psb_c_multivect_mod, only : psb_c_base_multivect_type, psb_c_multivect_type
|
||||
|
||||
interface psb_geall
|
||||
subroutine psb_calloc_vect(x, desc_a,info,n)
|
||||
subroutine psb_calloc_vect(x, desc_a,info)
|
||||
import
|
||||
implicit none
|
||||
type(psb_c_vect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n
|
||||
end subroutine psb_calloc_vect
|
||||
subroutine psb_calloc_vect_r2(x, desc_a,info,n,lb)
|
||||
import
|
||||
|
||||
@@ -37,13 +37,12 @@ Module psb_d_tools_mod
|
||||
use psb_d_multivect_mod, only : psb_d_base_multivect_type, psb_d_multivect_type
|
||||
|
||||
interface psb_geall
|
||||
subroutine psb_dalloc_vect(x, desc_a,info,n)
|
||||
subroutine psb_dalloc_vect(x, desc_a,info)
|
||||
import
|
||||
implicit none
|
||||
type(psb_d_vect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n
|
||||
end subroutine psb_dalloc_vect
|
||||
subroutine psb_dalloc_vect_r2(x, desc_a,info,n,lb)
|
||||
import
|
||||
|
||||
@@ -36,13 +36,12 @@ Module psb_i_tools_mod
|
||||
use psb_i_multivect_mod, only : psb_i_base_multivect_type, psb_i_multivect_type
|
||||
|
||||
interface psb_geall
|
||||
subroutine psb_ialloc_vect(x, desc_a,info,n)
|
||||
subroutine psb_ialloc_vect(x, desc_a,info)
|
||||
import
|
||||
implicit none
|
||||
type(psb_i_vect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n
|
||||
end subroutine psb_ialloc_vect
|
||||
subroutine psb_ialloc_vect_r2(x, desc_a,info,n,lb)
|
||||
import
|
||||
|
||||
@@ -36,13 +36,12 @@ Module psb_l_tools_mod
|
||||
use psb_l_multivect_mod, only : psb_l_base_multivect_type, psb_l_multivect_type
|
||||
|
||||
interface psb_geall
|
||||
subroutine psb_lalloc_vect(x, desc_a,info,n)
|
||||
subroutine psb_lalloc_vect(x, desc_a,info)
|
||||
import
|
||||
implicit none
|
||||
type(psb_l_vect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n
|
||||
end subroutine psb_lalloc_vect
|
||||
subroutine psb_lalloc_vect_r2(x, desc_a,info,n,lb)
|
||||
import
|
||||
|
||||
@@ -37,13 +37,12 @@ Module psb_s_tools_mod
|
||||
use psb_s_multivect_mod, only : psb_s_base_multivect_type, psb_s_multivect_type
|
||||
|
||||
interface psb_geall
|
||||
subroutine psb_salloc_vect(x, desc_a,info,n)
|
||||
subroutine psb_salloc_vect(x, desc_a,info)
|
||||
import
|
||||
implicit none
|
||||
type(psb_s_vect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n
|
||||
end subroutine psb_salloc_vect
|
||||
subroutine psb_salloc_vect_r2(x, desc_a,info,n,lb)
|
||||
import
|
||||
|
||||
@@ -37,13 +37,12 @@ Module psb_z_tools_mod
|
||||
use psb_z_multivect_mod, only : psb_z_base_multivect_type, psb_z_multivect_type
|
||||
|
||||
interface psb_geall
|
||||
subroutine psb_zalloc_vect(x, desc_a,info,n)
|
||||
subroutine psb_zalloc_vect(x, desc_a,info)
|
||||
import
|
||||
implicit none
|
||||
type(psb_z_vect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n
|
||||
end subroutine psb_zalloc_vect
|
||||
subroutine psb_zalloc_vect_r2(x, desc_a,info,n,lb)
|
||||
import
|
||||
|
||||
Reference in New Issue
Block a user