! Lockless MPI FORTRAN 77 Interface.

      INTEGER MPI_TAG, MPI_SOURCE, MPI_ERROR
      PARAMETER (MPI_TAG=3,MPI_SOURCE=4,MPI_ERROR=5)
      INTEGER MPI_STATUS_SIZE
      PARAMETER (MPI_STATUS_SIZE=6)
      INTEGER MPI_ADDRESS_KIND, MPI_OFFSET_KIND
      PARAMETER (MPI_ADDRESS_KIND=8)
      PARAMETER (MPI_OFFSET_KIND=8)

      INTEGER MPI_VERSION
      PARAMETER (MPI_VERSION=1)
      INTEGER MPI_SUBVERSION
      PARAMETER (MPI_SUBVERSION=3)
      INTEGER MPI_ANY_TAG
      PARAMETER (MPI_ANY_TAG=-1)
      INTEGER MPI_ANY_SOURCE
      PARAMETER (MPI_ANY_SOURCE=-1)
      INTEGER MPI_PROC_NULL
      PARAMETER (MPI_PROC_NULL=-2)
      INTEGER MPI_ROOT
      PARAMETER (MPI_ROOT=-3)

      INTEGER MPI_COMM_NULL
      PARAMETER (MPI_COMM_NULL=134217728)
      INTEGER MPI_COMM_WORLD
      PARAMETER (MPI_COMM_WORLD=134217729)
      INTEGER MPI_COMM_SELF
      PARAMETER (MPI_COMM_SELF=134217730)

      INTEGER MPI_MAX_PROCESSOR_NAME
      PARAMETER (MPI_MAX_PROCESSOR_NAME=255)
      INTEGER MPI_MAX_OBJECT_NAME
      PARAMETER (MPI_MAX_OBJECT_NAME=255)
      INTEGER MPI_BSEND_OVERHEAD
      PARAMETER (MPI_BSEND_OVERHEAD=32)
      INTEGER MPI_MAX_ERROR_STRING
      PARAMETER (MPI_MAX_ERROR_STRING=1023)

      INTEGER MPI_DATATYPE_NULL
      PARAMETER (MPI_DATATYPE_NULL=268435456)
      INTEGER MPI_LB
      PARAMETER (MPI_LB=268435457)
      INTEGER MPI_UB
      PARAMETER (MPI_UB=268435458)
      INTEGER MPI_PACKED
      PARAMETER (MPI_PACKED=268435459)
      INTEGER MPI_BYTE
      PARAMETER (MPI_BYTE=268435460)
      INTEGER MPI_CHAR
      PARAMETER (MPI_CHAR=268435461)
      INTEGER MPI_SHORT
      PARAMETER (MPI_SHORT=268435462)
      INTEGER MPI_INT
      PARAMETER (MPI_INT=268435463)
      INTEGER MPI_LONG
      PARAMETER (MPI_LONG=268435464)
      INTEGER MPI_LONG_LONG_INT
      PARAMETER (MPI_LONG_LONG_INT=268435465)
      INTEGER MPI_SIGNED_CHAR
      PARAMETER (MPI_SIGNED_CHAR=268435466)
      INTEGER MPI_UNSIGNED_CHAR
      PARAMETER (MPI_UNSIGNED_CHAR=268435467)
      INTEGER MPI_WCHAR
      PARAMETER (MPI_WCHAR=268435468)
      INTEGER MPI_UNSIGNED_SHORT
      PARAMETER (MPI_UNSIGNED_SHORT=268435469)
      INTEGER MPI_UNSIGNED
      PARAMETER (MPI_UNSIGNED=268435470)
      INTEGER MPI_UNSIGNED_LONG
      PARAMETER (MPI_UNSIGNED_LONG=268435471)
      INTEGER MPI_UNSIGNED_LONG_LONG
      PARAMETER (MPI_UNSIGNED_LONG_LONG=268435472)
      INTEGER MPI_INT8_T
      PARAMETER (MPI_INT8_T=268435473)
      INTEGER MPI_INT16_T
      PARAMETER (MPI_INT16_T=268435474)
      INTEGER MPI_INT32_T
      PARAMETER (MPI_INT32_T=268435475)
      INTEGER MPI_INT64_T
      PARAMETER (MPI_INT64_T=268435476)
      INTEGER MPI_INT128_T
      PARAMETER (MPI_INT128_T=268435477)
      INTEGER MPI_UINT8_T
      PARAMETER (MPI_UINT8_T=268435478)
      INTEGER MPI_UINT16_T
      PARAMETER (MPI_UINT16_T=268435479)
      INTEGER MPI_UINT32_T
      PARAMETER (MPI_UINT32_T=268435480)
      INTEGER MPI_UINT64_T
      PARAMETER (MPI_UINT64_T=268435481)
      INTEGER MPI_UINT128_T
      PARAMETER (MPI_UINT128_T=268435482)
      INTEGER MPI_FLOAT
      PARAMETER (MPI_FLOAT=268435483)
      INTEGER MPI_DOUBLE
      PARAMETER (MPI_DOUBLE=268435484)
      INTEGER MPI_LONG_DOUBLE
      PARAMETER (MPI_LONG_DOUBLE=268435485)
      INTEGER MPI_FLOAT128
      PARAMETER (MPI_FLOAT128=268435486)
      INTEGER MPI_C_FLOAT_COMPLEX
      PARAMETER (MPI_C_FLOAT_COMPLEX=268435487)
      INTEGER MPI_C_COMPLEX
      PARAMETER (MPI_C_COMPLEX=268435487)
      INTEGER MPI_C_DOUBLE_COMPLEX
      PARAMETER (MPI_C_DOUBLE_COMPLEX=268435488)
      INTEGER MPI_C_LONG_DOUBLE_COMPLEX
      PARAMETER (MPI_C_LONG_DOUBLE_COMPLEX=268435489)
      INTEGER MPI_C_FLOAT128_COMPLEX
      PARAMETER (MPI_C_FLOAT128_COMPLEX=268435490)
      INTEGER MPI_C_BOOL
      PARAMETER (MPI_C_BOOL=268435491)
      INTEGER MPI_CHARACTER
      PARAMETER (MPI_CHARACTER=268435492)
      INTEGER MPI_LOGICAL
      PARAMETER (MPI_LOGICAL=268435493)
      INTEGER MPI_INTEGER
      PARAMETER (MPI_INTEGER=268435494)
      INTEGER MPI_LOGICAL1
      PARAMETER (MPI_LOGICAL1=268435495)
      INTEGER MPI_LOGICAL2
      PARAMETER (MPI_LOGICAL2=268435496)
      INTEGER MPI_LOGICAL4
      PARAMETER (MPI_LOGICAL4=268435497)
      INTEGER MPI_LOGICAL8
      PARAMETER (MPI_LOGICAL8=268435498)
      INTEGER MPI_INTEGER1
      PARAMETER (MPI_INTEGER1=268435499)
      INTEGER MPI_INTEGER2
      PARAMETER (MPI_INTEGER2=268435500)
      INTEGER MPI_INTEGER4
      PARAMETER (MPI_INTEGER4=268435501)
      INTEGER MPI_INTEGER8
      PARAMETER (MPI_INTEGER8=268435502)
      INTEGER MPI_INTEGER16
      PARAMETER (MPI_INTEGER16=268435503)
      INTEGER MPI_REAL
      PARAMETER (MPI_REAL=268435504)
      INTEGER MPI_DOUBLE_PRECISION
      PARAMETER (MPI_DOUBLE_PRECISION=268435505)
      INTEGER MPI_COMPLEX
      PARAMETER (MPI_COMPLEX=268435506)
      INTEGER MPI_DOUBLE_COMPLEX
      PARAMETER (MPI_DOUBLE_COMPLEX=268435507)
      INTEGER MPI_LONG_DOUBLE_COMPLEX
      PARAMETER (MPI_LONG_DOUBLE_COMPLEX=268435508)
      INTEGER MPI_REAL4
      PARAMETER (MPI_REAL4=268435509)
      INTEGER MPI_REAL8
      PARAMETER (MPI_REAL8=268435510)
      INTEGER MPI_REAL16
      PARAMETER (MPI_REAL16=268435511)
      INTEGER MPI_COMPLEX8
      PARAMETER (MPI_COMPLEX8=268435512)
      INTEGER MPI_COMPLEX16
      PARAMETER (MPI_COMPLEX16=268435513)
      INTEGER MPI_COMPLEX32
      PARAMETER (MPI_COMPLEX32=268435514)
      INTEGER MPI_AINT
      PARAMETER (MPI_AINT=268435515)
      INTEGER MPI_OFFSET
      PARAMETER (MPI_OFFSET=268435516)
      INTEGER MPI_FLOAT_INT
      PARAMETER (MPI_FLOAT_INT=268435517)
      INTEGER MPI_DOUBLE_INT
      PARAMETER (MPI_DOUBLE_INT=268435518)
      INTEGER MPI_LONG_DOUBLE_INT
      PARAMETER (MPI_LONG_DOUBLE_INT=268435519)
      INTEGER MPI_SHORT_INT
      PARAMETER (MPI_SHORT_INT=268435520)
      INTEGER MPI_2INT
      PARAMETER (MPI_2INT=268435521)
      INTEGER MPI_LONG_INT
      PARAMETER (MPI_LONG_INT=268435522)
      INTEGER MPI_2INTEGER
      PARAMETER (MPI_2INTEGER=268435523)
      INTEGER MPI_2REAL
      PARAMETER (MPI_2REAL=268435524)
      INTEGER MPI_2DOUBLE_PRECISION
      PARAMETER (MPI_2DOUBLE_PRECISION=268435525)

      INTEGER MPI_GROUP_NULL
      PARAMETER (MPI_GROUP_NULL=402653184)
      INTEGER MPI_GROUP_EMPTY
      PARAMETER (MPI_GROUP_EMPTY=402653185)

      INTEGER MPI_OP_NULL
      PARAMETER (MPI_OP_NULL=536870912)
      INTEGER MPI_MAX
      PARAMETER (MPI_MAX=536870913)
      INTEGER MPI_MIN
      PARAMETER (MPI_MIN=536870914)
      INTEGER MPI_SUM
      PARAMETER (MPI_SUM=536870915)
      INTEGER MPI_PROD
      PARAMETER (MPI_PROD=536870916)
      INTEGER MPI_LAND
      PARAMETER (MPI_LAND=536870917)
      INTEGER MPI_BAND
      PARAMETER (MPI_BAND=536870918)
      INTEGER MPI_LOR
      PARAMETER (MPI_LOR=536870919)
      INTEGER MPI_BOR
      PARAMETER (MPI_BOR=536870920)
      INTEGER MPI_LXOR
      PARAMETER (MPI_LXOR=536870921)
      INTEGER MPI_BXOR
      PARAMETER (MPI_BXOR=536870922)
      INTEGER MPI_MAXLOC
      PARAMETER (MPI_MAXLOC=536870923)
      INTEGER MPI_MINLOC
      PARAMETER (MPI_MINLOC=536870924)

      INTEGER MPI_SUCCESS
      PARAMETER (MPI_SUCCESS=0)
      INTEGER MPI_ERR_OTHER
      PARAMETER (MPI_ERR_OTHER=1)
      INTEGER MPI_ERR_COMM
      PARAMETER (MPI_ERR_COMM=2)
      INTEGER MPI_ERR_COUNT
      PARAMETER (MPI_ERR_COUNT=3)
      INTEGER MPI_ERR_TYPE
      PARAMETER (MPI_ERR_TYPE=4)
      INTEGER MPI_ERR_BUFFER
      PARAMETER (MPI_ERR_BUFFER=5)
      INTEGER MPI_ERR_ROOT
      PARAMETER (MPI_ERR_ROOT=6)
      INTEGER MPI_ERR_TAG
      PARAMETER (MPI_ERR_TAG=7)
      INTEGER MPI_ERR_RANK
      PARAMETER (MPI_ERR_RANK=8)
      INTEGER MPI_ERR_ARG
      PARAMETER (MPI_ERR_ARG=9)
      INTEGER MPI_ERR_REQUEST
      PARAMETER (MPI_ERR_REQUEST=10)
      INTEGER MPI_ERR_IN_STATUS
      PARAMETER (MPI_ERR_IN_STATUS=11)
      INTEGER MPI_ERR_PENDING
      PARAMETER (MPI_ERR_PENDING=12)
      INTEGER MPI_ERR_INTERN
      PARAMETER (MPI_ERR_INTERN=13)
      INTEGER MPI_ERR_GROUP
      PARAMETER (MPI_ERR_GROUP=14)
      INTEGER MPI_ERR_CANCEL
      PARAMETER (MPI_ERR_CANCEL=15)
      INTEGER MPI_ERR_OP
      PARAMETER (MPI_ERR_OP=16)
      INTEGER MPI_ERR_TOPOLOGY
      PARAMETER (MPI_ERR_TOPOLOGY=17)
      INTEGER MPI_ERR_DIMS
      PARAMETER (MPI_ERR_DIMS=18)
      INTEGER MPI_ERR_UNKNOWN
      PARAMETER (MPI_ERR_UNKNOWN=19)
      INTEGER MPI_ERR_TRUNCATE
      PARAMETER (MPI_ERR_TRUNCATE=20)
      INTEGER MPI_ERR_KEYVAL
      PARAMETER (MPI_ERR_KEYVAL=21)
      INTEGER MPI_ERR_LASTCODE
      PARAMETER (MPI_ERR_LASTCODE=21)

      INTEGER MPI_ERRHANDLER_NULL
      PARAMETER (MPI_ERRHANDLER_NULL=671088640)
      INTEGER MPI_ERRORS_ARE_FATAL
      PARAMETER (MPI_ERRORS_ARE_FATAL=671088641)
      INTEGER MPI_ERRORS_RETURN
      PARAMETER (MPI_ERRORS_RETURN=671088642)

      INTEGER MPI_IDENT
      PARAMETER (MPI_IDENT=0)
      INTEGER MPI_CONGRUENT
      PARAMETER (MPI_CONGRUENT=1)
      INTEGER MPI_SIMILAR
      PARAMETER (MPI_SIMILAR=2)
      INTEGER MPI_UNEQUAL
      PARAMETER (MPI_UNEQUAL=3)

      INTEGER MPI_CART
      PARAMETER (MPI_CART=0)
      INTEGER MPI_GRAPH
      PARAMETER (MPI_GRAPH=1)

      INTEGER MPI_UNDEFINED
      PARAMETER (MPI_UNDEFINED=-1)
      INTEGER MPI_REQUEST_NULL
      PARAMETER (MPI_REQUEST_NULL=805306368)

      INTEGER MPI_KEYVAL_INVALID
      PARAMETER (MPI_KEYVAL_INVALID=939524096)
      INTEGER MPI_TAG_UB
      PARAMETER (MPI_TAG_UB=939524097)
      INTEGER MPI_HOST
      PARAMETER (MPI_HOST=939524098)
      INTEGER MPI_IO
      PARAMETER (MPI_IO=939524099)
      INTEGER MPI_WTIME_IS_GLOBAL
      PARAMETER (MPI_WTIME_IS_GLOBAL=939524100)

      EXTERNAL MPI_DUP_FN, MPI_NULL_COPY_FN, MPI_NULL_DELETE_FN
      EXTERNAL MPI_IN_PLACE, MPI_BOTTOM
      EXTERNAL MPI_STATUS_IGNORE, MPI_STATUSES_IGNORE
      EXTERNAL MPI_WTIME, MPI_WTICK, PMPI_WTIME, PMPI_WTICK
      DOUBLE PRECISION MPI_WTIME, MPI_WTICK, PMPI_WTIME, PMPI_WTICK
