Scrambler
1
|
Performs necessary communication of new tree tree created by CreateChildren to necessary processors and calls appropriate pair-wise node routine when unparsing messages. Intermediate between TreeLevelComms and TreeNodeOps. More...
Public Member Functions | |
subroutine | FindList2D (A, j, b) |
Returns a 1D array 'b' containing the true indices from column j of 2D logical array 'A'. | |
subroutine | FindList1D (A, b) |
Returns a 1D array 'b' containing the true indices of a 1D logical array 'A'. | |
NeighboringChildrenParsing Routines for parsing nodes for InheritNeighborChildren | |
subroutine | SendNeighboringChildren (message, node, neighbor) |
sends children that might neighbor neighbor's children | |
subroutine | RecvNeighboringChildren (message) |
receives children that might neighbor children of local nodes | |
OverlappingChildrenParsing Routines for parsing nodes for InheritOverlapChildren | |
subroutine | SendOverlappingChildren (message, node, overlap) |
This routine is called by two different schedulers: PostSendOverlappingChildrenToNewNodes PostSendOverlappingChildrenToOldNodes Both of which send children to overlaps (For old grids, the children info is being sent to new overlaps) (For new grids, the children info is being sent to old overlaps) | |
subroutine | RecvOverlappingChildrenFromOldNodes (message) |
receives children that might overlap children of local nodes | |
subroutine | RecvOverlappingChildrenFromNewNodes (message) |
receives children that might overlap children of old nodes | |
ChildGridParsing Routines for parsing new nodes to child processors | |
subroutine | SendGridToChild (message, child) |
Informs children of their new grids or of their nextlevel parentprocs. | |
subroutine | RecvGridsFromParent (message) |
Receiving incoming new grids. | |
ChildOverlapsNeighborsParsing Routines for parsing overlaps and neighbors to new children | |
subroutine | SendOverlapsNeighborsToChild (Message, child) |
Informs children of their neighbors and overlaps. | |
subroutine | RecvOverlapsNeighbors (message) |
Receives neighbors and overlaps of new grids received by RecvGridsFromParent. | |
OldChildOverlapsParsing Routines for parsing overlaps to old children | |
subroutine | SendOverlapsToChild (message, child) |
This routine is called by two different schedulers: PostSendOverlapsToOldNodesChildren PostSendOverlapsToNodesOldChildren Both of which send new overlaps to old grids on the child level (on step 1 the old child grids are old grids children) (on step 2 the old child grids are the current grids old children) | |
subroutine | RecvOldNodeOverlaps (message) |
This routine is called by old grids and unpacks new overlaps received from the parent grids. | |
ControlParsingRoutines Routines for parsing parent processors | |
subroutine | FinalizeSendGridsToChildren (MessageGroup, ChildChildArray, GrandChildArray) |
This routine extracts the list of new parent procs for the grandchildren of child grids. | |
subroutine | FinalizeRecvGridsFromParents (MessageGroup, NewParentsArray) |
This routine receives the parentlist for the next level from the parents of the current level. |
Performs necessary communication of new tree tree created by CreateChildren to necessary processors and calls appropriate pair-wise node routine when unparsing messages. Intermediate between TreeLevelComms and TreeNodeOps.
Definition at line 36 of file tree_parsing.f90.
subroutine SendNeighboringChildren | ( | TYPE(PackedMessage), pointer | message, |
TYPE(NodeDef), pointer | node, | ||
TYPE(NodeDef), pointer | neighbor | ||
) |
sends children that might neighbor neighbor's children
message | message to pack to |
node | The node whose children should be packed |
neighbor | The neighbor node that might have children that neighbor the node's children |
Definition at line 54 of file tree_parsing.f90.
subroutine RecvNeighboringChildren | ( | TYPE(PackedMessage), pointer | message | ) |
receives children that might neighbor children of local nodes
message | message to unpack from |
Definition at line 84 of file tree_parsing.f90.
subroutine SendOverlappingChildren | ( | TYPE(PackedMessage), pointer | message, |
TYPE(NodeDef), pointer | node, | ||
TYPE(NodeDef), pointer | overlap | ||
) |
This routine is called by two different schedulers: PostSendOverlappingChildrenToNewNodes PostSendOverlappingChildrenToOldNodes Both of which send children to overlaps (For old grids, the children info is being sent to new overlaps) (For new grids, the children info is being sent to old overlaps)
message | The message to pack to |
node | The node whose children should be packed |
overlap | The overlap node that might have children that overlap the node's children |
Definition at line 133 of file tree_parsing.f90.
subroutine RecvOverlappingChildrenFromOldNodes | ( | TYPE(PackedMessage), pointer | message | ) |
receives children that might overlap children of local nodes
message | message to unpack from |
Definition at line 162 of file tree_parsing.f90.
subroutine RecvOverlappingChildrenFromNewNodes | ( | TYPE(PackedMessage), pointer | message | ) |
receives children that might overlap children of old nodes
message | message to unpack from |
Definition at line 207 of file tree_parsing.f90.
subroutine SendGridToChild | ( | TYPE(PackedMessage), pointer | message, |
TYPE(NodeDef), pointer | child | ||
) |
Informs children of their new grids or of their nextlevel parentprocs.
message | The message to pack to |
child | The child node to pack |
Definition at line 258 of file tree_parsing.f90.
subroutine RecvGridsFromParent | ( | TYPE(PackedMessage), pointer | message | ) |
Receiving incoming new grids.
message | The message to unpack from |
Definition at line 271 of file tree_parsing.f90.
subroutine SendOverlapsNeighborsToChild | ( | TYPE(PackedMessage), pointer | Message, |
TYPE(NodeDef), pointer | child | ||
) |
Informs children of their neighbors and overlaps.
message | The message to pack to |
child | The child node to pack neighbors and overlaps of |
Definition at line 301 of file tree_parsing.f90.
subroutine RecvOverlapsNeighbors | ( | TYPE(PackedMessage), pointer | message | ) |
Receives neighbors and overlaps of new grids received by RecvGridsFromParent.
message | The message to unpack from |
Definition at line 338 of file tree_parsing.f90.
subroutine SendOverlapsToChild | ( | TYPE(PackedMessage), pointer | message, |
TYPE(NodeDef), pointer | child | ||
) |
This routine is called by two different schedulers: PostSendOverlapsToOldNodesChildren PostSendOverlapsToNodesOldChildren Both of which send new overlaps to old grids on the child level (on step 1 the old child grids are old grids children) (on step 2 the old child grids are the current grids old children)
message | The message to pack to |
child | The child node to pack the overlaps of |
Definition at line 386 of file tree_parsing.f90.
subroutine RecvOldNodeOverlaps | ( | TYPE(PackedMessage), pointer | message | ) |
This routine is called by old grids and unpacks new overlaps received from the parent grids.
message | The message to unpack from |
Definition at line 408 of file tree_parsing.f90.
subroutine FinalizeSendGridsToChildren | ( | TYPE(StageMessageGroup), pointer | MessageGroup, |
LOGICAL, dimension(:,:), pointer | ChildChildArray, | ||
LOGICAL, dimension(:), pointer | GrandChildArray | ||
) |
This routine extracts the list of new parent procs for the grandchildren of child grids.
MessageGroup | The message group containing the child grids |
ChildChildArray | A 2D array of size MPI_NPxMPI_NP where ChildChildArray(i,j) is true |
GrandChildArray | 1D array containing child and grandchild procs if processor i is on a proclist of any child assigned to processor j |
Definition at line 444 of file tree_parsing.f90.
subroutine FinalizeRecvGridsFromParents | ( | TYPE(StageMessageGroup), pointer | MessageGroup, |
LOGICAL, dimension(:), pointer | NewParentsArray | ||
) |
This routine receives the parentlist for the next level from the parents of the current level.
MessageGroup | The message group containing the child grids |
NewParentsArray | A 1D array of size MPI_NP where NewParentsArray(i) is true if the proclists of any grid on processor i contains the current processor. |
Definition at line 486 of file tree_parsing.f90.
subroutine FindList2D | ( | LOGICAL, dimension(:,:), pointer | A, |
INTEGER | j, | ||
INTEGER, dimension(:), pointer | b | ||
) |
Returns a 1D array 'b' containing the true indices from column j of 2D logical array 'A'.
A | 2D logical array whose lower bounds are expected to be 0 |
j | Column index |
b | Output array that needs to be allocated and returned |
Definition at line 534 of file tree_parsing.f90.
subroutine FindList1D | ( | LOGICAL, dimension(:), pointer | A, |
INTEGER, dimension(:), pointer | b | ||
) |
Returns a 1D array 'b' containing the true indices of a 1D logical array 'A'.
A | 1D logical array whose lower bound is expected to be 0 |
b | Output array that needs to be allocated and returned |
Definition at line 553 of file tree_parsing.f90.