class_connectivity_procedures Submodule

**m Connectivity/alloc_conn

NAME alloc_conn USAGE call alloc_conn(a2b,nel=nv,nconn=nedg)

DESCRIPTION Constructor. (re)Allocates a connectivity table.

INPUTS a2b :: type(connectivity) The connectivity to be allocated; reused if already available. nel :: integer Number of items (vertices) to be connected nconn :: integer Number of connections (edges)


**m Connectivity/free_conn

NAME free_conn USAGE call free_conn(a2b)

DESCRIPTION Destructor

INPUTS a2b :: type(connectivity) The connectivity to be destroyed;


**f Connectivity/bcast_conn

NAME bcast_conn USAGE

 call bcast_conn(a2b)

DESCRIPTION Distribute a copy of the connectivity from process 0 to everybody else.

INPUTS a2b :: type(connectivity) The connectivity to be broadcast;


**m Connectivity/get_ith_conn

NAME get_ith_conn USAGE call get_ith_conn(ith_conn,a2b,i)

DESCRIPTION Getter. Access the I-th row in the connectivity table. Returns a pointer to the requested row. Note: returning a pointer and not a copy, because it is used in tight loops; user should NEVER modify nor deallocate the returned pointer.

INPUTS a2b :: type(connectivity), intent(in), target The connectivity to be accessed; i :: integer Request access to the I-th row; OUTPUT ith_conn(:) :: integer, pointer A pointer to the i-th row;


**m Connectivity/get_conn_csr

NAME get_conn_csr USAGE call get_conn_csr(a2b,lookup,conn)

DESCRIPTION Get a full copy of the connectivity table in CSR format. Being a copy the user may do as he/she pleases with it, and should remember to deallocate it.

INPUTS a2b :: type(connectivity), intent(in) The connectivity to be accessed; OUTPUT lookup(:) :: integer, allocatable conn(:) :: integer, allocatable A copy of the lookup table. The neighbours of item I are listed at CONN(lookup(i):lookup(i+1)-1)



Uses

  • module~~class_connectivity_procedures~~UsesGraph module~class_connectivity_procedures class_connectivity_procedures module~class_psblas class_psblas module~class_connectivity_procedures->module~class_psblas module~class_connectivity class_connectivity module~class_connectivity_procedures->module~class_connectivity module~class_stopwatch class_stopwatch module~class_psblas->module~class_stopwatch module~tools_psblas tools_psblas module~class_psblas->module~tools_psblas module~class_connectivity->module~class_psblas module~class_stopwatch->module~tools_psblas psb_base_mod psb_base_mod module~class_stopwatch->psb_base_mod psb_prec_mod psb_prec_mod module~tools_psblas->psb_prec_mod module~tools_psblas->psb_base_mod psb_krylov_mod psb_krylov_mod module~tools_psblas->psb_krylov_mod

Contents


Module Procedures

module procedure alloc_conn module subroutine alloc_conn(a2b, nel, nconn, lb)

Arguments

Type IntentOptional AttributesName
type(connectivity), intent(inout) :: a2b
integer, intent(in) :: nel
integer, intent(in) :: nconn
integer, intent(in), optional :: lb

module procedure bcast_conn module subroutine bcast_conn(a2b)

Arguments

Type IntentOptional AttributesName
type(connectivity) :: a2b

module procedure copy_conn module procedure copy_conn()

Arguments

None

module procedure count_references module function count_references(a2b, nb)

Arguments

Type IntentOptional AttributesName
type(connectivity), intent(in) :: a2b
integer, intent(in) :: nb

Return Value integer (nb)

module procedure free_conn module subroutine free_conn(a2b)

Arguments

Type IntentOptional AttributesName
type(connectivity), intent(inout) :: a2b

module procedure g2l_conn_1d module procedure g2l_conn_1d()

Arguments

None

module procedure g2l_conn_2d module procedure g2l_conn_2d()

Arguments

None

module procedure g2l_conn_core module subroutine g2l_conn_core(a2b, iglob_to_loc_a, iloc_to_glob_b)

Arguments

Type IntentOptional AttributesName
class(connectivity), intent(inout) :: a2b
integer, intent(in) :: iglob_to_loc_a(:)
integer, intent(in) :: iloc_to_glob_b(:)

IP - 5/27/2019: This work-around fixes an ICE with Intel 18.0.5.274 Note: The ICE only shows up when building the submodule that implements this procedure

module procedure get_conn_csr module subroutine get_conn_csr(a2b, lookup, conn)

Arguments

Type IntentOptional AttributesName
class(connectivity), intent(in) :: a2b
integer, allocatable:: lookup(:)
integer, allocatable:: conn(:)

module procedure get_dual_conn module subroutine get_dual_conn(a2b, b2a)

Arguments

Type IntentOptional AttributesName
class(connectivity), intent(in) :: a2b
type(connectivity), intent(out) :: b2a

module procedure get_ith_conn module subroutine get_ith_conn(a2b, ith_conn, i)

Arguments

Type IntentOptional AttributesName
class(connectivity), intent(in), target:: a2b
integer, pointer:: ith_conn(:)
integer, intent(in) :: i

module procedure l2g_conn module subroutine l2g_conn(a2b_loc, a2b_glob, desc_a, desc_b)

Arguments

Type IntentOptional AttributesName
type(connectivity), intent(in) :: a2b_loc
type(connectivity), intent(out) :: a2b_glob
type(psb_desc_type), intent(in) :: desc_a
type(psb_desc_type), intent(in) :: desc_b

module procedure max_conn module function max_conn(a2b, lb)

Arguments

Type IntentOptional AttributesName
class(connectivity), intent(in) :: a2b
integer, intent(in), optional :: lb

Return Value integer

module procedure nconn_ module function nconn_(a2b, gl)

Arguments

Type IntentOptional AttributesName
class(connectivity), intent(in) :: a2b
character(len=1), intent(in), optional :: gl

Return Value integer

module procedure nel_ module function nel_(a2b, gl)

Arguments

Type IntentOptional AttributesName
class(connectivity), intent(in) :: a2b
character(len=1), intent(in), optional :: gl

Return Value integer

module procedure nemo_connectivity_sizeof elemental module function nemo_connectivity_sizeof(conn)

Arguments

Type IntentOptional AttributesName
class(connectivity), intent(in) :: conn

Return Value integer(kind=nemo_int_long_)

module procedure print_conn module subroutine print_conn(iout, a2b, head)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: iout
type(connectivity), intent(in) :: a2b
character(len=*), intent(in), optional :: head

module procedure set_ith_conn module subroutine set_ith_conn(a2b, i, ith_conn)

Arguments

Type IntentOptional AttributesName
class(connectivity), intent(inout) :: a2b
integer, intent(in) :: i
integer, intent(in) :: ith_conn(:)

module procedure unused_elements module function unused_elements(a2b)

Arguments

Type IntentOptional AttributesName
class(connectivity), intent(in) :: a2b

Return Value integer