MPI_File_get_amode - Returns the file access mode
SYNOPSIS
C:
#include "mpi.h"
int MPI_File_get_amode (MPI_File fh, int *amode)
Fortran:
INCLUDE "mpif.h" (or USE MPI)
INTEGER fh, amode, ierror
CALL MPI_FILE_GET_AMODE (fh, amode, ierror)
DESCRIPTION
MPI_File_get_amode returns, in amode, the access mode of
the file associated with fh. Access mode bits are defined
in the MPI_File_open(3) man page.
This routine accepts the following arguments:
fh Specifies the file handle (handle)
amode Returns access mode (integer)
ierror Specifies the return code value for successful
completion, which is in MPI_SUCCESS.
MPI_SUCCESS is defined in the mpif.h file.
EXAMPLES
The following Fortran 77 example illustrates decoding an
access mode bit vector:
SUBROUTINE BIT_QUERY(TEST_BIT, MAX_BIT, AMODE, BIT_FOUND)
!
! TEST IF THE INPUT TEST_BIT IS SET IN THE INPUT AMODE
! IF SET, RETURN 1 IN BIT_FOUND, 0 OTHERWISE
!
INTEGER TEST_BIT, AMODE, BIT_FOUND, CP_AMODE, HIFOUND
BIT_FOUND = 0
CP_AMODE = AMODE
100 CONTINUE
LBIT = 0
HIFOUND = 0
DO 20 L = MAX_BIT, 0, -1
MATCHER = 2**L
IF (CP_AMODE .GE. MATCHER .AND. HIFOUND .EQ. 0) THEN
HIFOUND = 1
CP_AMODE = CP_AMODE - MATCHER
END IF
20 CONTINUE
IF (HIFOUND .EQ. 1 .AND. LBIT .EQ. TEST_BIT) BIT_FOUND = 1
IF (BIT_FOUND .EQ. 0 .AND. HIFOUND .EQ. 1 .AND. &
CP_AMODE .GT. 0) GO TO 100
END
The previous routine can be called successively to decode
amode, one bit at a time. For example, the following code
fragment checks for MPI_MODE_RDONLY:
CALL BIT_QUERY(MPI_MODE_RDONLY, 30, AMODE, BIT_FOUND)
IF (BIT_FOUND .EQ. 1) THEN
PRINT *, ' FOUND READ-ONLY BIT IN AMODE=', AMODE
ELSE
PRINT *, ' READ-ONLY BIT NOT FOUND IN AMODE=', AMODE
END IF
Notes for Fortran
All MPI objects (for example, MPI_Datatype, MPI_Comm,
MPI_File) are of type INTEGER.
SEE ALSO
MPI_File_open(3), MPI_IO(3)
Man(1) output converted with
man2html