network_t Derived Type

type, public :: network_t

Network object to represent the entire hypergraph. It contains the number of nodes, number of edges, and arrays of nodes and edges objects.


Inherits

type~~network_t~~InheritsGraph type~network_t network_t fixed_list_t fixed_list_t type~network_t->fixed_list_t nodes_per_degree, edges_per_order type~hyperedge_t hyperedge_t type~network_t->type~hyperedge_t edges type~network_props_t network_props_t type~network_t->type~network_props_t props type~node_t node_t type~network_t->type~node_t nodes

Components

Type Visibility Attributes Name Initial
integer(kind=i4), public :: num_nodes = 0
integer(kind=i4), public :: num_edges = 0
integer(kind=i4), public :: max_order = 0
type(node_t), public, allocatable :: nodes(:)
type(hyperedge_t), public, allocatable :: edges(:)
type(network_props_t), public :: props
type(fixed_list_t), public, allocatable :: nodes_per_degree(:)
type(fixed_list_t), public, allocatable :: edges_per_order(:)

Finalization Procedures

final :: network_finalizer

  • private subroutine network_finalizer(net)

    Arguments

    Type IntentOptional Attributes Name
    type(network_t), intent(inout) :: net

Type-Bound Procedures

procedure, public :: init => network_init

  • private subroutine network_init(net, num_nodes, num_edges)

    Arguments

    Type IntentOptional Attributes Name
    class(network_t) :: net
    integer(kind=i4), intent(in) :: num_nodes
    integer(kind=i4), intent(in) :: num_edges

procedure, public :: build_edges_from_nodes => network_build_edges_from_nodes

  • private subroutine network_build_edges_from_nodes(net)

    Subroutine to build edges from nodes in the network. It iterates over each node and assigns the corresponding edges to the hyperedges. @param net The network object containing the nodes and edges.

    Note

    This subroutine modifies the edges of the network based on the nodes' connections.

    Note

    The edges are built by iterating over each node and assigning the corresponding edges to the hyperedges.

    Note

    The last_edge_index array is used to keep track of the last index for each hyperedge.

    Arguments

    Type IntentOptional Attributes Name
    class(network_t) :: net

procedure, public :: build_nodes_from_edges => network_build_nodes_from_edges

  • private subroutine network_build_nodes_from_edges(net)

    Arguments

    Type IntentOptional Attributes Name
    class(network_t) :: net

procedure, public :: print_nodes_and_edges => network_print_nodes_and_edges

  • private subroutine network_print_nodes_and_edges(net)

    Arguments

    Type IntentOptional Attributes Name
    class(network_t), intent(in) :: net

procedure, public :: clear_null_edges => network_clear_null_edges

  • private subroutine network_clear_null_edges(net, min_order_input)

    Arguments

    Type IntentOptional Attributes Name
    class(network_t), intent(inout) :: net
    integer(kind=i4), intent(in), optional :: min_order_input

procedure, public :: check_topology_consistency => network_check_topology_consistency

  • private subroutine network_check_topology_consistency(net)

    Arguments

    Type IntentOptional Attributes Name
    class(network_t), intent(inout) :: net

procedure, public :: remove_invalid_nodes_and_edges => network_remove_invalid_nodes_and_edges

  • private subroutine network_remove_invalid_nodes_and_edges(net)

    Arguments

    Type IntentOptional Attributes Name
    class(network_t), intent(inout) :: net

procedure, public :: clear_and_check_all => network_clear_and_check_all

  • private subroutine network_clear_and_check_all(net, min_order)

    Arguments

    Type IntentOptional Attributes Name
    class(network_t), intent(inout) :: net
    integer(kind=i4), intent(in), optional :: min_order

procedure, public :: reset_props => network_reset_props

  • private subroutine network_reset_props(net)

    Arguments

    Type IntentOptional Attributes Name
    class(network_t), intent(inout) :: net

procedure, public :: destroy => network_destroy

  • private subroutine network_destroy(net)

    Arguments

    Type IntentOptional Attributes Name
    class(network_t), intent(inout) :: net