MPI_ADD_ERROR_CLASS(ERRORCLASS, IERROR)
 INTEGER ERRORCLASS, IERROR 
  
  MPI_ADD_ERROR_CODE(ERRORCLASS, ERRORCODE, IERROR)
 INTEGER ERRORCLASS, ERRORCODE, IERROR 
  
  MPI_ADD_ERROR_STRING(ERRORCODE, STRING, IERROR)
 INTEGER ERRORCODE, IERROR 
CHARACTER*(*) STRING 
  
  MPI_COMM_CALL_ERRHANDLER(COMM, ERRORCODE, IERROR)
 INTEGER COMM, ERRORCODE, IERROR 
  
  MPI_COMM_CREATE_KEYVAL(COMM_COPY_ATTR_FN, COMM_DELETE_ATTR_FN, COMM_KEYVAL, EXTRA_STATE, IERROR)
 EXTERNAL COMM_COPY_ATTR_FN, COMM_DELETE_ATTR_FN
INTEGER COMM_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE 
  
  MPI_COMM_DELETE_ATTR(COMM, COMM_KEYVAL, IERROR)
 INTEGER COMM, COMM_KEYVAL, IERROR 
    
  MPI_COMM_FREE_KEYVAL(COMM_KEYVAL, IERROR)
 INTEGER COMM_KEYVAL, IERROR 
   
  MPI_COMM_GET_ATTR(COMM, COMM_KEYVAL, ATTRIBUTE_VAL, FLAG, IERROR)
 INTEGER COMM, COMM_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL
LOGICAL FLAG 
    
  MPI_COMM_GET_NAME(COMM, COMM_NAME, RESULTLEN, IERROR) 
 INTEGER COMM, RESULTLEN, IERROR
CHARACTER*(*) COMM_NAME 
  
  MPI_COMM_SET_ATTR(COMM, COMM_KEYVAL, ATTRIBUTE_VAL, IERROR)
 INTEGER COMM, COMM_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL 
   
  MPI_COMM_SET_NAME(COMM, COMM_NAME, IERROR) 
 INTEGER COMM, IERROR
CHARACTER*(*) COMM_NAME 
  
  MPI_FILE_CALL_ERRHANDLER(FH, ERRORCODE, IERROR)
 INTEGER FH, ERRORCODE, IERROR 
  
  MPI_GREQUEST_COMPLETE(REQUEST, IERROR)
 INTEGER REQUEST, IERROR 
  
  MPI_GREQUEST_START(QUERY_FN, FREE_FN, CANCEL_FN, EXTRA_STATE, REQUEST, IERROR)
 INTEGER REQUEST, IERROR
EXTERNAL QUERY_FN, FREE_FN, CANCEL_FN
INTEGER (KIND=MPI_ADDRESS_KIND) EXTRA_STATE 
  
  MPI_INIT_THREAD(REQUIRED, PROVIDED, IERROR)
 INTEGER REQUIRED, PROVIDED, IERROR 
  
  MPI_IS_THREAD_MAIN(FLAG, IERROR) 
 LOGICAL FLAG 
INTEGER IERROR 
  
  MPI_QUERY_THREAD(PROVIDED, IERROR)
  INTEGER PROVIDED, IERROR 
  
  MPI_STATUS_SET_CANCELLED(STATUS, FLAG, IERROR)
 INTEGER STATUS(MPI_STATUS_SIZE), IERROR
LOGICAL FLAG 
  
  MPI_STATUS_SET_ELEMENTS(STATUS, DATATYPE, COUNT, IERROR)
 INTEGER STATUS(MPI_STATUS_SIZE), DATATYPE, COUNT, IERROR 
  
  MPI_TYPE_CREATE_KEYVAL(TYPE_COPY_ATTR_FN, TYPE_DELETE_ATTR_FN, TYPE_KEYVAL, EXTRA_STATE, IERROR)
 EXTERNAL TYPE_COPY_ATTR_FN, TYPE_DELETE_ATTR_FN
INTEGER TYPE_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE 
  
  MPI_TYPE_DELETE_ATTR(TYPE, TYPE_KEYVAL, IERROR)
 INTEGER TYPE, TYPE_KEYVAL, IERROR 
    
  MPI_TYPE_DUP(TYPE, NEWTYPE, IERROR)
 INTEGER TYPE, NEWTYPE, IERROR 
  
  MPI_TYPE_FREE_KEYVAL(TYPE_KEYVAL, IERROR)
 INTEGER TYPE_KEYVAL, IERROR 
   
  MPI_TYPE_GET_ATTR(TYPE, TYPE_KEYVAL, ATTRIBUTE_VAL, FLAG, IERROR)
 INTEGER TYPE, TYPE_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL
LOGICAL FLAG 
    
  MPI_TYPE_GET_CONTENTS(DATATYPE, MAX_INTEGERS, MAX_ADDRESSES, MAX_DATATYPES, ARRAY_OF_INTEGERS, ARRAY_OF_ADDRESSES, ARRAY_OF_DATATYPES, IERROR)
 INTEGER DATATYPE, MAX_INTEGERS, MAX_ADDRESSES, MAX_DATATYPES, ARRAY_OF_INTEGERS(*), ARRAY_OF_DATATYPES(*), IERROR 
INTEGER(KIND=MPI_ADDRESS_KIND) ARRAY_OF_ADDRESSES(*) 
  
  MPI_TYPE_GET_ENVELOPE(DATATYPE, NUM_INTEGERS, NUM_ADDRESSES, NUM_DATATYPES, COMBINER, IERROR)
 INTEGER DATATYPE, NUM_INTEGERS, NUM_ADDRESSES, NUM_DATATYPES, COMBINER, IERROR 
  
  MPI_TYPE_GET_NAME(TYPE, TYPE_NAME, RESULTLEN, IERROR) 
 INTEGER TYPE, RESULTLEN, IERROR
CHARACTER*(*) TYPE_NAME 
  
  MPI_TYPE_SET_ATTR(TYPE, TYPE_KEYVAL, ATTRIBUTE_VAL, IERROR)
 INTEGER TYPE, TYPE_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL 
   
  MPI_TYPE_SET_NAME(TYPE, TYPE_NAME, IERROR) 
 INTEGER TYPE, IERROR
CHARACTER*(*) TYPE_NAME 
  
  MPI_WIN_CALL_ERRHANDLER(WIN, ERRORCODE, IERROR)
 INTEGER WIN, ERRORCODE, IERROR 
  
  MPI_WIN_CREATE_KEYVAL(WIN_COPY_ATTR_FN, WIN_DELETE_ATTR_FN, WIN_KEYVAL, EXTRA_STATE, IERROR)
 EXTERNAL WIN_COPY_ATTR_FN, WIN_DELETE_ATTR_FN
INTEGER WIN_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE 
  
  MPI_WIN_DELETE_ATTR(WIN, WIN_KEYVAL, IERROR)
 INTEGER WIN, WIN_KEYVAL, IERROR 
    
  MPI_WIN_FREE_KEYVAL(WIN_KEYVAL, IERROR)
 INTEGER WIN_KEYVAL, IERROR 
   
  MPI_WIN_GET_ATTR(WIN, WIN_KEYVAL, ATTRIBUTE_VAL, FLAG, IERROR)
 INTEGER WIN, WIN_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL
LOGICAL FLAG 
    
  MPI_WIN_GET_NAME(WIN, WIN_NAME, RESULTLEN, IERROR) 
 INTEGER WIN, RESULTLEN, IERROR
CHARACTER*(*) WIN_NAME 
  
  MPI_WIN_SET_ATTR(WIN, WIN_KEYVAL, ATTRIBUTE_VAL, IERROR)
 INTEGER WIN, WIN_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL 
   
  MPI_WIN_SET_NAME(WIN, WIN_NAME, IERROR) 
 INTEGER WIN, IERROR
CHARACTER*(*) WIN_NAME