Scrambler  1
IOComms Module Reference

Provides communication routines for getting data to the master processor for I/O. More...

+ Collaboration diagram for IOComms:

List of all members.

Public Member Functions

subroutine, public IO_ScheduleSendFrameData (level, finest_level, buffer_size, buffer_totals)
 Sends the node and grid data for a given level to the master processor.
subroutine, public IO_ScheduleSendDomainData (buffer_totals)
 Packs and sends boxes and cost maps from level -1 to master.
subroutine, public IO_GetDatasetSizes (level, finest_level, dataset_sizes)
 Use collective MPI communication routines to aggregate dataset information on Master.
subroutine, public IO_PostRecvGridsFromWorkers (sm_group, level)
 Posts receives for grids passed from workers as part of the Chombo restart process.
subroutine, public IO_UnparseGridsFromWorkers (chandle, message)
 Receives and processes grids passed from workers as part of the Chombo restart process.
subroutine, public IO_PostSendGridsToMaster (message, level)
 Packs and posts sends with grids for the master processor as part of the Chombo restart process.
subroutine, public IO_CompSendGridsToMaster (message)
 Receives and processes grids passed from workers as part of the Chombo restart process.
subroutine, public IO_MpiSendDataToWorkers (chandle, level)
 Packs and posts sends with data for workers as part of the Chombo restart process. Data for the master processor is simply copied to the appropriate InfoDef structure.
subroutine, public IO_CompRecvDataFromMaster (level, chandle)
 Receives data from master during Chombo restart and stores it in the appropriate Info structures.
INTEGER function, public IO_CalcMessageCost (node, level, finest_level)
 Calculates the cost in bytes of sending a node's contribution to a Chombo file.
subroutine, public IO_UnparseLevelStatistics (message, level_stats)
 Retrieves a 1D integer array of level statistics from a packed message.

Public Attributes

INTEGER, parameter, public IO_Q_SIZE = 1
INTEGER, parameter, public IO_AUX_SIZE = 2
INTEGER, parameter, public IO_CHILDCOUNT = 3
INTEGER, parameter, public IO_NEXTLEVELCOST = 4
INTEGER, parameter, public IO_LEVEL_STAT_COUNT = 4
INTEGER, parameter, public IO_LEVEL_STAT_BYTES = 16

Private Member Functions

subroutine MatchNodeBoxMpiRank (chandle, mod_box)
 Attempts to locate the counterpart of mod_box within the Chombo handle and replace its MPI_id.
LOGICAL function IsContainedWithin (inside_array, inside_level, outside_array, outside_level)
 Returns true if the dimensions of the first box lie entirely within the dimensions of the outside box.

Detailed Description

Provides communication routines for getting data to the master processor for I/O.

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

Definition at line 34 of file io_comms.f90.


Member Function/Subroutine Documentation

subroutine, public IO_ScheduleSendFrameData ( INTEGER  level,
INTEGER  finest_level,
INTEGER  buffer_size,
INTEGER, dimension(io_level_stat_count)  buffer_totals 
)

Sends the node and grid data for a given level to the master processor.

Parameters:
levelThe level of the data to be sent.
buffer_totalsA 3-element integer array holding the level's total q cells, aux cells, and child nodes.
finest_levelFinest Level

Definition at line 90 of file io_comms.f90.

subroutine, public IO_ScheduleSendDomainData ( INTEGER, dimension(io_level_stat_count)  buffer_totals)

Packs and sends boxes and cost maps from level -1 to master.

Parameters:
buffer_totalsA 3-element integer array holding the level's total q cells, aux cells, and child nodes.

Definition at line 148 of file io_comms.f90.

subroutine, public IO_GetDatasetSizes ( INTEGER  level,
INTEGER  finest_level,
INTEGER, dimension(io_level_stat_count), intent(out)  dataset_sizes 
)

Use collective MPI communication routines to aggregate dataset information on Master.

Parameters:
levelThe level of the data being collected.
dataset_sizesAn optional 1D integer array that will hold the output variables.
finest_levelFinest Level

Definition at line 195 of file io_comms.f90.

subroutine, public IO_PostRecvGridsFromWorkers ( TYPE(StageMessageGroup), pointer  sm_group,
INTEGER  level 
)

Posts receives for grids passed from workers as part of the Chombo restart process.

Parameters:
sm_groupA StageMessageGroup pointer to be initialized and used.
levelThe level of the information being transferred.

Definition at line 291 of file io_comms.f90.

subroutine, public IO_UnparseGridsFromWorkers ( TYPE(ChomboHandle), pointer  chandle,
TYPE(PackedMessage), pointer  message 
)

Receives and processes grids passed from workers as part of the Chombo restart process.

Parameters:
chandleAn active Chombo handle.
sm_groupA StageMessageGroup pointer to be initialized and used.

Definition at line 315 of file io_comms.f90.

subroutine MatchNodeBoxMpiRank ( TYPE(ChomboHandle), pointer  chandle,
TYPE(NodeBox), pointer  mod_box 
) [private]

Attempts to locate the counterpart of mod_box within the Chombo handle and replace its MPI_id.

Parameters:
chandleAn active Chombo handle.
mod_boxA NodeBox object whose MPI rank will replace the one in its Chombo counterpart.

Definition at line 338 of file io_comms.f90.

LOGICAL function IsContainedWithin ( INTEGER, dimension(max_dims, 2)  inside_array,
INTEGER  inside_level,
INTEGER, dimension(max_dims, 2)  outside_array,
INTEGER  outside_level 
) [private]

Returns true if the dimensions of the first box lie entirely within the dimensions of the outside box.

Parameters:
inside_arrayThe box that (we hope) is inside the outside box.
outside_arrayThe box that (we hope) contains the inside box.
inside_levelThe level of the inside box.
outside_levelThe level of the outside box.

This is kind of a crummy design, in that the boxes may be no more than one level apart. I hope to improve it.

Definition at line 369 of file io_comms.f90.

subroutine, public IO_PostSendGridsToMaster ( TYPE(PackedMessage), pointer  message,
INTEGER  level 
)

Packs and posts sends with grids for the master processor as part of the Chombo restart process.

Parameters:
messageA PackedMessageObject that will be initialized.
levelThe level of the information being transferred.

Definition at line 399 of file io_comms.f90.

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

Receives and processes grids passed from workers as part of the Chombo restart process.

Parameters:
messageA PackedMessage object with uncompleted sends.

Definition at line 448 of file io_comms.f90.

subroutine, public IO_MpiSendDataToWorkers ( TYPE(ChomboHandle), pointer  chandle,
INTEGER  level 
)

Packs and posts sends with data for workers as part of the Chombo restart process. Data for the master processor is simply copied to the appropriate InfoDef structure.

Parameters:
chandleAn active chombo handle.
sm_groupA StageMessageGroup object that will be initialized here.
levelThe level of the information being transferred. Should always be >= -1.

Definition at line 465 of file io_comms.f90.

subroutine, public IO_CompRecvDataFromMaster ( INTEGER  level,
TYPE(ChomboHandle), pointer  chandle 
)

Receives data from master during Chombo restart and stores it in the appropriate Info structures.

Parameters:
messageA PackedMessage object. The level of this message should always be >= -1.
chandleAn active Chombo file handle.

Definition at line 602 of file io_comms.f90.

INTEGER function, public IO_CalcMessageCost ( TYPE(NodeDef), pointer  node,
INTEGER  level,
INTEGER  finest_level 
)

Calculates the cost in bytes of sending a node's contribution to a Chombo file.

Parameters:
nodeThe node whose cost is being sent.
levelThe level of the node in question.
finest_levelThe finest level of data this Chombo file will be recording.

Definition at line 630 of file io_comms.f90.

subroutine, public IO_UnparseLevelStatistics ( TYPE(PackedMessage), pointer  message,
INTEGER, dimension(io_level_stat_count)  level_stats 
)

Retrieves a 1D integer array of level statistics from a packed message.

Parameters:
messageThe message from which the data comes.
level_statsThe 1D integer array in which the data goes.

Definition at line 680 of file io_comms.f90.


Member Data Documentation

INTEGER, parameter, public IO_Q_SIZE = 1

Definition at line 71 of file io_comms.f90.

INTEGER, parameter, public IO_AUX_SIZE = 2

Definition at line 72 of file io_comms.f90.

INTEGER, parameter, public IO_CHILDCOUNT = 3

Definition at line 73 of file io_comms.f90.

INTEGER, parameter, public IO_NEXTLEVELCOST = 4

Definition at line 74 of file io_comms.f90.

INTEGER, parameter, public IO_LEVEL_STAT_COUNT = 4

Definition at line 75 of file io_comms.f90.

INTEGER, parameter, public IO_LEVEL_STAT_BYTES = 16

Definition at line 77 of file io_comms.f90.


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