Provided by: openmpi-doc_1.10.2-8ubuntu1_all bug

NAME

       MPI_Register_datarep - Defines data representation.

SYNTAX

       C Syntax
           #include <mpi.h>
           int MPI_Register_datarep(const char *datarep,
                  MPI_Datarep_conversion_function *read_conversion_fn,
                  MPI_Datarep_conversion_function *write_conversion_fn,
                  MPI_Datarep_extent_function *dtype_file_extent_fn,
                  void *extra_state)

Fortran Syntax

           INCLUDE 'mpif.h'
           MPI_REGISTER_DATAREP(DATAREP, READ_CONVERSION_FN,
            WRITE_CONVERSION_FN, DTYPE_FILE_EXTENT_FN,
            EXTRA_STATE, IERROR)
                 CHARACTER*(*) DATAREP
                 EXTERNAL READ_CONVERSION_FN, WRITE_CONVERSION_FN,
                          DTYPE_FILE_EXTENT_FN
                 INTEGER   IERROR
                 INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

C++ Syntax

       #include <mpi.h>
       void MPI::Register_datarep(const char* datarep,
            MPI::Datarep_conversion_function* read_conversion_fn,
            MPI::Datarep_conversion_function* write_conversion_fn,
            MPI::Datarep_extent_function* dtype_file_extent_fn,
            void* extra_state)

INPUT PARAMETERS

       datarep   Data representation identifier (string).

       read_conversion_fn
                 Function  invoked  to  convert from file representation to native representation
                 (function).

       write_conversion_fn
                 Function invoked to convert from native representation  to  file  representation
                 (function).

       dtype_file_extent_fn
                 Function  invoked  to  get  the extent of a data type as represented in the file
                 (function).

       extra_state
                 Extra state.

OUTPUT PARAMETER

       IERROR    Fortran only: Error status (integer).

DESCRIPTION

       MPI_Register_datarep   defines   a   data   representation.   It   associates   the   data
       representation's  identifier  (a  string)  with  the  functions  that  convert  from  file
       representation to the native representation and vice versa, with the  function  that  gets
       the extent of a data type as represented in the file, as well as with "extra state," which
       is used for passing arguments. Once a data representation has been registered  using  this
       routine,  you  may  specify  its  identifier  as an argument to MPI_File_set_view, causing
       subsequent data-access operations to call the specified conversion functions.

       The call associates read_conversion_fn, write_conversion_fn, and dtype_file_extent_fn with
       the  data  representation  identifier  datarep. datarep can then be used as an argument to
       MPI_File_set_view, causing subsequent  data  access  operations  to  call  the  conversion
       functions  to  convert all data items accessed between file data representation and native
       representation. MPI_Register_datarep is a local operation  and  only  registers  the  data
       representation for the calling MPI process. If datarep is already defined, an error in the
       error class MPI_ERR_DUP_DATAREP is raised using the default file error handler. The length
       of  a  data  representation  string  is  limited  to  the value of MPI_MAX_DATAREP_STRING.
       MPI_MAX_DATAREP_STRING must have a value of at least  64.  No  routines  are  provided  to
       delete  data representations and free the associated resources; it is not expected that an
       application will generate them in significant numbers.

NOTES

       The Fortran version of each MPI I/O routine includes a final argument,  IERROR,  which  is
       not  defined  in the PARAMETERS sections. This argument is used to return the error status
       of the routine in the manner typical for Fortran library routines.

       The C version of each routine returns an error status as an integer return value.

       Error classes are found in mpi.h (for C), mpif.h (for Fortran), and mpi++.h (for C++).

ERRORS

       Almost all MPI routines return an error value; C routines as the value of the function and
       Fortran  routines in the last argument. C++ functions do not return errors. If the default
       error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then  on  error  the  C++  exception
       mechanism will be used to throw an MPI::Exception object.

       Before  the  error value is returned, the current MPI error handler is called. For MPI I/O
       function errors, the default error handler is set to MPI_ERRORS_RETURN. The error  handler
       may    be   changed   with   MPI_File_set_errhandler;   the   predefined   error   handler
       MPI_ERRORS_ARE_FATAL may be used to  make  I/O  errors  fatal.  Note  that  MPI  does  not
       guarantee that an MPI program can continue past an error.