IsNodePresent
Inheritence
This method is inherited from the AbstractMesh class.
IsNodePresent
The IsNodePresent method checks if specific node numbers exist in the mesh. It has two versions: one for checking a single node, and another for checking multiple nodes simultaneously.
Interface
INTERFACE
  MODULE FUNCTION isNodePresent1(obj, globalNode, islocal) RESULT(ans)
    CLASS(AbstractMesh_), INTENT(IN) :: obj
    INTEGER(I4B), INTENT(IN) :: globalNode
    LOGICAL(LGT), OPTIONAL, INTENT(IN) :: islocal
    LOGICAL(LGT) :: ans
  END FUNCTION isNodePresent1
END INTERFACE
INTERFACE
  MODULE FUNCTION isNodePresent2(obj, globalNode, islocal) RESULT(ans)
    CLASS(AbstractMesh_), INTENT(IN) :: obj
    INTEGER(I4B), INTENT(IN) :: globalNode(:)
    LOGICAL(LGT), OPTIONAL, INTENT(IN) :: islocal
    LOGICAL(LGT) :: ans(SIZE(globalNode))
  END FUNCTION isNodePresent2
END INTERFACE
Syntax
! For a single node
isPresent = mesh%IsNodePresent(globalNode, [islocal])
! For multiple nodes
arePresent = mesh%IsNodePresent(globalNodeArray, [islocal])
Parameters
| Parameter | Type | Intent | Description | 
|---|---|---|---|
obj | CLASS(AbstractMesh_) | IN | The mesh object | 
globalNode | INTEGER(I4B) or INTEGER(I4B)(:) | IN | Global or local node number(s) to check | 
islocal | LOGICAL(LGT) | IN (optional) | If true, globalNode is treated as a local node number | 
Return Value
| Version | Type | Description | 
|---|---|---|
| Single node | LOGICAL(LGT) | True if the node is present in the mesh | 
| Multiple nodes | LOGICAL(LGT)(:) | Array of logical values indicating presence of each node | 
Description
IsNodePresent determines whether specified node numbers exist in the mesh. The method can handle either a single node number or an array of node numbers. For a single node, it returns a scalar logical value; for multiple nodes, it returns an array of logical values.
Implementation Details
For a single node, the method checks:
- If the node is being treated as local, it verifies it's within the valid range of local nodes
 - If the node is global, it checks if it's within the valid range of global nodes and has a valid local mapping
 
For multiple nodes, it simply calls the single-node version for each element of the array.
Example Usage
TYPE(Mesh_) :: mesh
INTEGER(I4B) :: nodeNum
INTEGER(I4B), ALLOCATABLE :: nodeArray(:)
LOGICAL(LGT) :: isPresent
LOGICAL(LGT), ALLOCATABLE :: arePresent(:)
! Initialize mesh, nodeNum, nodeArray...
! Check if a single node exists
isPresent = mesh%IsNodePresent(nodeNum)
IF (isPresent) THEN
  PRINT*, "Node", nodeNum, "exists in the mesh"
ELSE
  PRINT*, "Node", nodeNum, "does not exist in the mesh"
END IF
! Check if multiple nodes exist
arePresent = mesh%IsNodePresent(nodeArray)
! Process results...