Scrambler  1
MessageDeclarations Module Reference

Contains routines for managing messages. More...

+ Collaboration diagram for MessageDeclarations:

List of all members.

Data Types

type  MessageBlock
 Contains a list of data blocks for receiving messages. More...
type  MessageList
 Contains a list of packed messages. More...
type  PackedMessage
 Contains data needed for a single processor to processor message. More...
type  ProcessorList
 Contains a list of processors. More...
type  pStageMessageGroup
 Contains a pointer to a StageMessageGroup. More...
type  RequestList
 Contains lists of mpi_requests. More...
type  StageMessageGroup
 Contains information about all messages in a given stage. More...

Public Member Functions

MessageBlock routines
subroutine, public CreateMessageBlock (message_size, last_block, first_block, current_block)
 Adds a new MessageBlock structure to the the block list passed in.
recursive subroutine, public ClearMessageBlocks (block_list)
 Deletes elements from a MessageBlock list structure, starting with the referenced request.
subroutine, public ClearAllMessageBlocks (message)
 Deletes all message blocks associated with a message object.
subroutine, public AddMessageBlock (message, init_message, message_size)
 Adds a new message block to the message object.
PackedMessage routines
subroutine, public CreatePackedMessageObject (level, remote_proc, tag, lSend, message_size, message)
 Initializes a PackedMessage data structure.
subroutine, public DestroyPackedMessageObject (message)
 Deallocates the message object and all associated data structures.
MessageList routines
subroutine, public AddMessageToList (message, last_message, msg_list)
 Appends a MessageList object (with accompanying PackedMessage object) to the end of a list.
recursive subroutine, public DestroyMessageListObject (message_list)
 Destroys a MessageList object and all its children. DO NOT USE THIS SUBROUTINE AT THE PARSING LAYER OR ABOVE.
StageMessageGroup routines
subroutine, public CreateMessageGroupObject (sm_group, iStageTag, lSend, level)
 Creates a StageMessageGroup object. Note that this does NOT populate it with messages.
subroutine, public DestroyMessageGroupObject (sm_group)
 Releases all memory referenced by a message group. DO NOT USE THIS SUBROUTINE AT THE PARSING LAYER OR ABOVE.

Public Attributes

INTEGER, parameter, public STD_BUFFER_SIZE = 16384
INTEGER, parameter, public I_FIRST_REQUESTS = 1
INTEGER, parameter, public I_CURRENT_REQUESTS = 2
INTEGER, parameter, public I_LAST_REQUESTS = 3
INTEGER, parameter, public MAX_MESSAGE_PIECES = 100

RequestList routines

subroutine, public CreateMpiRequest (mpi_request, last_request, first_request, current_request)
 Adds a new MpiRequest structure to the PackedMessage structure.
subroutine, public ClearAllRequests (message)
 Deletes all MPI message requests associated with a message object.
subroutine, public AddMpiRequest (message, request, init_message)
 Adds an MPI request to the message object.
recursive subroutine ClearRequestList (request_list)
 Deletes elements from an MPI RequestList structure, starting with the referenced request.

ProcessorList routines

subroutine, public AppendProcessorToList (proc_id, last_proc, proc_list)
 Appends a new processor to the processor list. This subroutine will not fail on a duplicate entry, but it will not append duplicates.
subroutine, public AddProcessorToMGList (sm_group, proc_id)
 Appends a Processor to a MessageGroup's processor list.
recursive subroutine ClearProcessorList (proc_list)
 Deallocates and nullifies a processor list, starting with the given ProcessorList structure.

Detailed Description

Contains routines for managing messages.

Author:
Brandon D. Shroyer
Date:
8-21-2010

Definition at line 34 of file message_declarations.f90.


Member Function/Subroutine Documentation

subroutine, public CreateMpiRequest ( INTEGER  mpi_request,
TYPE(RequestList), pointer  last_request,
TYPE(RequestList), optional, pointer  first_request,
TYPE(RequestList), optional, pointer  current_request 
)

Adds a new MpiRequest structure to the PackedMessage structure.

Parameters:
mpi_requestAn MPI request handle.
last_requestThe request list to which request will be appended.
first_requestAn optional parameter indicating the first node in the last_request request list.
current_requestAnother optional parameter providing another pointer that will point to the new request.

Definition at line 140 of file message_declarations.f90.

recursive subroutine ClearRequestList ( TYPE(RequestList), pointer  request_list) [private]

Deletes elements from an MPI RequestList structure, starting with the referenced request.

Parameters:
request_listA reference to a request list.

Definition at line 189 of file message_declarations.f90.

subroutine, public ClearAllRequests ( TYPE(PackedMessage), pointer  message)

Deletes all MPI message requests associated with a message object.

Parameters:
messageThe PackedMessage object to be cleared of requests.

Definition at line 206 of file message_declarations.f90.

subroutine, public AddMpiRequest ( TYPE(PackedMessage), pointer  message,
INTEGER  request,
LOGICAL  init_message 
)

Adds an MPI request to the message object.

Parameters:
messageA packed message object to hold the request.
requestAn MPI request handle.
init_messageA logical flag indicating whether or not this is being called when the message is initialized.

Definition at line 223 of file message_declarations.f90.

subroutine, public CreateMessageBlock ( INTEGER  message_size,
TYPE(MessageBlock), pointer  last_block,
TYPE(MessageBlock), optional, pointer  first_block,
TYPE(MessageBlock), optional, pointer  current_block 
)

Adds a new MessageBlock structure to the the block list passed in.

Parameters:
message_sizeThe size of the new block to be created.
last_blockThe MessageBlock list to which the new block will be appended.
first_blockAn optional MessageBlock pointer that will point to a freshly-created MessageBlock list.
current_blockAnother optional MessageBlock pointer that will point to a freshly-created MessageBlock list.

Definition at line 250 of file message_declarations.f90.

recursive subroutine, public ClearMessageBlocks ( TYPE(MessageBlock), pointer  block_list)

Deletes elements from a MessageBlock list structure, starting with the referenced request.

Parameters:
block_listA reference to a message block list list.

Definition at line 300 of file message_declarations.f90.

subroutine, public ClearAllMessageBlocks ( TYPE(PackedMessage), pointer  message)

Deletes all message blocks associated with a message object.

Parameters:
messageThe PackedMessage object to be cleared of message blocks.

Definition at line 317 of file message_declarations.f90.

subroutine, public AddMessageBlock ( TYPE(PackedMessage), pointer  message,
LOGICAL  init_message,
INTEGER  message_size 
)

Adds a new message block to the message object.

Parameters:
messageA packed message object to hold the new message block.
init_messageA logical flag indicating whether or not this is being called when the message is initialized.
message_sizeThe size of the new message block's buffer.

Definition at line 334 of file message_declarations.f90.

subroutine, public CreatePackedMessageObject ( INTEGER  level,
INTEGER  remote_proc,
INTEGER  tag,
LOGICAL  lSend,
INTEGER  message_size,
TYPE(PackedMessage), pointer  message 
)

Initializes a PackedMessage data structure.

Parameters:
levelThe level on which the creating process is working.
remote_procThe ID of the processor with which this object will interact.
tagThe MPI message tag this object's MPI message will have.
lSendFlag whether message is to be sent or received
message_sizeThe size of the message buffer to be created.
messageA pointer for the new message object.

Definition at line 382 of file message_declarations.f90.

subroutine, public DestroyPackedMessageObject ( TYPE(PackedMessage), pointer  message)

Deallocates the message object and all associated data structures.

Parameters:
messageA message object to be deallocated.

Definition at line 437 of file message_declarations.f90.

subroutine, public AddMessageToList ( TYPE(PackedMessage), pointer  message,
TYPE(MessageList), pointer  last_message,
TYPE(MessageList), optional, pointer  msg_list 
)

Appends a MessageList object (with accompanying PackedMessage object) to the end of a list.

Parameters:
messageThe PackedMessage object to be appended to the list (this must be an associated object).
msg_listThe MessageList to receive a new member.
last_messageThe last message in the message list

Definition at line 460 of file message_declarations.f90.

recursive subroutine, public DestroyMessageListObject ( TYPE(MessageList), pointer  message_list)

Destroys a MessageList object and all its children. DO NOT USE THIS SUBROUTINE AT THE PARSING LAYER OR ABOVE.

Parameters:
message_listA pointer to the message list being destroyed.

Definition at line 506 of file message_declarations.f90.

subroutine, public CreateMessageGroupObject ( TYPE(StageMessageGroup), pointer  sm_group,
INTEGER  iStageTag,
LOGICAL  lSend,
INTEGER  level 
)

Creates a StageMessageGroup object. Note that this does NOT populate it with messages.

Parameters:
sm_groupThe StageMessageGroup object being filled out.
iStageTagThe MPI tag identifier of the stage this StageMessageGroup is handling.
lSendSet to true if this is a sending operation; false if it is a receiving operation.
levelThe level of the current transmissions.

Definition at line 531 of file message_declarations.f90.

subroutine, public DestroyMessageGroupObject ( TYPE(StageMessageGroup), pointer  sm_group)

Releases all memory referenced by a message group. DO NOT USE THIS SUBROUTINE AT THE PARSING LAYER OR ABOVE.

Parameters:
sm_groupThe StageMessageGroup object to be destroyed.

Definition at line 567 of file message_declarations.f90.

subroutine, public AppendProcessorToList ( INTEGER  proc_id,
TYPE(ProcessorList), pointer  last_proc,
TYPE(ProcessorList), optional, pointer  proc_list 
)

Appends a new processor to the processor list. This subroutine will not fail on a duplicate entry, but it will not append duplicates.

Parameters:
proc_listThe processor list to receive a new entry.
proc_idThe processor ID be appended to the list.
last_procThe last processor in the list

Definition at line 593 of file message_declarations.f90.

subroutine, public AddProcessorToMGList ( TYPE(StageMessageGroup), pointer  sm_group,
INTEGER  proc_id 
)

Appends a Processor to a MessageGroup's processor list.

Parameters:
sm_groupThe MessageGroup object
proc_idThe processor ID

Definition at line 627 of file message_declarations.f90.

recursive subroutine ClearProcessorList ( TYPE(ProcessorList), pointer  proc_list) [private]

Deallocates and nullifies a processor list, starting with the given ProcessorList structure.

Parameters:
proc_listThe head of the processor list to be cleared.

Definition at line 647 of file message_declarations.f90.


Member Data Documentation

INTEGER, parameter, public STD_BUFFER_SIZE = 16384

Definition at line 49 of file message_declarations.f90.

INTEGER, parameter, public I_FIRST_REQUESTS = 1

Definition at line 53 of file message_declarations.f90.

INTEGER, parameter, public I_CURRENT_REQUESTS = 2

Definition at line 54 of file message_declarations.f90.

INTEGER, parameter, public I_LAST_REQUESTS = 3

Definition at line 55 of file message_declarations.f90.

INTEGER, parameter, public MAX_MESSAGE_PIECES = 100

Definition at line 59 of file message_declarations.f90.


The documentation for this module was generated from the following file:
 All Classes Files Functions Variables