FLASH3.3 Release API

ROBODoc 4.99 manual

Generated from /asc/home/flashdocs/FLASH3_33/source/Driver/Driver_checkMPIErrorCode.F90 with ROBODoc v4.99.8 on Wed Oct 20 17:16:50 2010


[Functions] source/Driver/Driver_checkMPIErrorCode





   Driver_checkMPIErrorCode(integer(IN):: myPE, integer(IN) :: errorCode)


   myPE : My processor identifier.
   errorCode : Return value of an MPI call.


  Checks the return value of an MPI call.  If all is healthy then
  the value is MPI_SUCCESS and the subroutine simply returns.
  If we encounter non-MPI_SUCCESS we attempt to learn as much about 
  the error as possible.  This includes translating error codes and 
  error classes to strings describing the error.  After discovering 
  an error we eventually call Driver_abortFlash.


  When there is an error we print the error message to the main FLASH
  logfile.  We are able to pass any size string to Logfile_stampMessage 
  because the string argument in Logfile_stampMessage is character (len=*).

  "The error codes returned, with the exception of MPI_SUCCESS, are 
  defined by each implementation.  This approach allows an MPI
  implementation to encode additional data into the error code.  MPI 
  also specifies a small set of error classes: integers that divide 
  the error codes into a small number of categories." [Ref:Using MPI].

  "Several factors limit the ability of MPI calls to return with
  meaningful error codes when an error occurs.  MPI may not be able to
  detect some errors; other errors may be too expensive to detect in
  normal execution mode; finally some errors may be "catastrophic" and
  may prevent MPI from returning control to the caller in a consistent
  state." [Ref:MPI standard].