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


       MPI_Register_datarep - Defines data representation.


       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'
            EXTRA_STATE, IERROR)
                 CHARACTER*(*) DATAREP
                 INTEGER   IERROR

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)


       datarep   Data representation identifier (string).

                 Function  invoked  to  convert from file representation to native representation

                 Function invoked to convert from native representation  to  file  representation

                 Function  invoked  to  get  the extent of a data type as represented in the file

                 Extra state.


       IERROR    Fortran only: Error status (integer).


       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.


       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++).


       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.