import 64-bit version of MPICH2 for windows

This commit is contained in:
Axel Kohlmeyer
2013-06-25 13:15:48 +02:00
parent d6f22e741f
commit ee8dcb331a
17 changed files with 5658 additions and 0 deletions

View File

@ -0,0 +1,134 @@
/*
(C) 2001 by Argonne National Laboratory.
See COPYRIGHT in top-level directory.
*/
#if !defined( _CLOG_COMMSET )
#define _CLOG_COMMSET
#include "clog_inttypes.h"
#include "clog_uuid.h"
#include "clog_const.h"
#define CLOG_CommGID_t CLOG_Uuid_t
#define CLOG_CommLID_t CLOG_int32_t
#define CLOG_ThreadLID_t int
/*
typedef CLOG_Uuid_t CLOG_CommGID_t
typedef CLOG_int32_t CLOG_CommLID_t
typedef int CLOG_ThreadLID_t
*/
/* Define CLOG communicator event types used in log_mpi_xxxx.c */
#define CLOG_COMM_WORLD_CREATE 0 /* MPI_COMM_WORLD creation */
#define CLOG_COMM_SELF_CREATE 1 /* MPI_COMM_SELF creation */
#define CLOG_COMM_FREE 10 /* MPI_Comm_free() */
#define CLOG_COMM_INTRA_CREATE 100 /* intracomm creation */
#define CLOG_COMM_INTRA_LOCAL 101 /* local intracomm of intercomm */
#define CLOG_COMM_INTRA_REMOTE 102 /* remote intracomm of intercomm */
#define CLOG_COMM_INTER_CREATE 1000 /* intercomm creation */
/* Define CLOG communicator kind */
#define CLOG_COMM_KIND_UNKNOWN -1 /* is UNKNOWN */
#define CLOG_COMM_KIND_INTER 0 /* is intercommunicator */
#define CLOG_COMM_KIND_INTRA 1 /* is intracommunicator */
#define CLOG_COMM_KIND_LOCAL 2 /* is local intracommunicator */
#define CLOG_COMM_KIND_REMOTE 3 /* is remote intracommunicator */
/* Some CLOG communicator internal constant */
#define CLOG_COMM_TABLE_INCRE 10
#define CLOG_COMM_LID_NULL -999999999
#define CLOG_COMM_RANK_NULL -1
#define CLOG_COMM_WRANK_NULL -1
#define CLOG_COMM_TAG_START 100000
#if !defined( CLOG_NOMPI )
#include "mpi.h"
#else
/*
To avoid mpi_null.h from being exposed to the user's include_dir,
the definition of MPI_Comm has to match that in mpi_null.h.
The "#if !defined( _MPI_NULL_MPI_COMM )" is to avoid duplicated
definition of MPI_Comm when both mpi_null.h and this .h are used
in the same .c file.
*/
#if !defined( _MPI_NULL_MPI_COMM )
#define _MPI_NULL_MPI_COMM
typedef int MPI_Comm;
#endif
#endif /* Endof if !defined( CLOG_NOMPI ) */
typedef struct CLOG_CommIDs_t_ {
CLOG_CommGID_t global_ID; /* global comm ID */
CLOG_CommLID_t local_ID; /* local comm ID */
CLOG_int32_t kind; /* value = CLOG_COMM_KIND_xxxx */
int world_rank; /* rank in MPI_COMM_WORLD */
int comm_rank; /* rank of comm labelled by global_ID */
MPI_Comm comm;
struct CLOG_CommIDs_t_ *next; /* related CLOG_CommIDs_t* */
} CLOG_CommIDs_t;
/* Definition for CLOG Communicator control data structure */
typedef struct {
int LID_key;
int world_size; /* size returned by MPI_Comm_size */
int world_rank; /* rank returned by MPI_Comm_rank */
unsigned int max;
CLOG_CommLID_t count;
CLOG_CommIDs_t *table;
CLOG_CommIDs_t *IDs4world;
CLOG_CommIDs_t *IDs4self;
} CLOG_CommSet_t;
#if defined(__cplusplus)
extern "C" {
#endif
CLOG_CommSet_t* CLOG_CommSet_create( void );
void CLOG_CommSet_free( CLOG_CommSet_t **comm_handle );
#if defined( CLOG_IMPL )
void CLOG_CommSet_add_GID( CLOG_CommSet_t *commset,
const CLOG_CommGID_t commgid );
void CLOG_CommSet_append_GIDs( CLOG_CommSet_t *parent_commset,
int child_table_count,
const CLOG_CommIDs_t *child_table );
CLOG_BOOL_T CLOG_CommSet_sync_IDs( CLOG_CommSet_t *parent_commset,
int child_table_count,
const CLOG_CommIDs_t *child_table );
#endif
void CLOG_CommSet_init( CLOG_CommSet_t *commset );
const CLOG_CommIDs_t* CLOG_CommSet_add_intracomm( CLOG_CommSet_t *commset,
MPI_Comm comm );
const CLOG_CommIDs_t*
CLOG_CommSet_add_intercomm( CLOG_CommSet_t *commset,
MPI_Comm intercomm,
const CLOG_CommIDs_t *intracommIDs );
CLOG_CommLID_t CLOG_CommSet_get_LID( CLOG_CommSet_t *commset, MPI_Comm comm );
const CLOG_CommIDs_t* CLOG_CommSet_get_IDs( CLOG_CommSet_t *commset,
MPI_Comm comm );
void CLOG_CommSet_merge( CLOG_CommSet_t *commset );
#if defined( CLOG_IMPL )
int CLOG_CommSet_write( const CLOG_CommSet_t *commset, int fd,
CLOG_BOOL_T do_byte_swap );
int CLOG_CommSet_read( CLOG_CommSet_t *commset, int fd,
CLOG_BOOL_T do_byte_swap );
void CLOG_CommSet_print( CLOG_CommSet_t *commset, FILE *stream );
#endif
#if defined(__cplusplus)
}
#endif
#endif /* of _CLOG_COMMSET */

View File

@ -0,0 +1,27 @@
/*
(C) 2001 by Argonne National Laboratory.
See COPYRIGHT in top-level directory.
*/
#if !defined( _CLOG_CONST )
#define _CLOG_CONST
/*
CLOG_FILE_TYPE determines default CLOG2 file extension, i.e. ".clog2"
as well as the prefix for the local temporary clog2 file.
*/
#define CLOG_FILE_TYPE "clog2"
#define CLOG_BOOL_T int
#define CLOG_BOOL_NULL -1
#define CLOG_BOOL_FALSE 0
#define CLOG_BOOL_TRUE 1
#define CLOG_PATH_STRLEN 256
#define CLOG_ERR_STRLEN 256
#define CLOG_PROCID_NULL -1
#define CLOG_NULL_FILE -5
#define CLOG_MAXTIME 100000000.0 /* later than all times */
#endif /* of _CLOG_CONST */

View File

@ -0,0 +1,31 @@
/*
(C) 2001 by Argonne National Laboratory.
See COPYRIGHT in top-level directory.
*/
/*
MPE Logging's generated header file for fixed size integer types
and their printf format specifiers used in CLOG2.
*/
#if !defined( _CLOG_INTTYPES )
#define _CLOG_INTTYPES
/* #include <stdint.h> */
/* #include <inttypes.h> */
typedef __int8 CLOG_int8_t;
typedef __int16 CLOG_int16_t;
typedef __int32 CLOG_int32_t;
typedef __int64 CLOG_int64_t;
/*
Define address-sized integer for the use of MPI_Comm_xxx_attr
in clog2_commset.c.
*/
typedef __int32 CLOG_Pint;
#define i8fmt "%hhd"
#define i16fmt "%hd"
#define i32fmt "%ld"
#define i64fmt "%lld"
#endif

View File

@ -0,0 +1,55 @@
/*
(C) 2001 by Argonne National Laboratory.
See COPYRIGHT in top-level directory.
*/
#if !defined( _CLOG_UUID )
#define _CLOG_UUID
#include "clog_inttypes.h"
/*
Only CLOG_UUID_NAME_SIZE-1 is useful.
The last char in CLOG_UUID_NAME_SIZE is NULL char,
the terminating character.
#define CLOG_UUID_NAME_SIZE 17
#define CLOG_UUID_SIZE sizeof(CLOG_int32_t)+sizeof(double)+CLOG_UUID_NAME_SIZE-1
typedef struct {
CLOG_int32_t rand;
double time;
char name[CLOG_UUID_NAME_SIZE];
} CLOG_Uuid_t;
*/
#define CLOG_UUID_NAME_SIZE 20
#define CLOG_UUID_SIZE sizeof(CLOG_int32_t) + sizeof(double) \
+ CLOG_UUID_NAME_SIZE
/* size of string representation of CLOG_Uuit_t */
#define CLOG_UUID_STR_SIZE 80
#if defined(__cplusplus)
extern "C" {
#endif
typedef char CLOG_Uuid_t[ CLOG_UUID_SIZE ];
void CLOG_Uuid_init( void );
void CLOG_Uuid_finalize( void );
void CLOG_Uuid_generate( CLOG_Uuid_t uuid );
void CLOG_Uuid_sprint( CLOG_Uuid_t uuid, char *str );
int CLOG_Uuid_is_equal( const CLOG_Uuid_t uuid1, const CLOG_Uuid_t uuid2 );
int CLOG_Uuid_compare( const void *obj1, const void *obj2 );
void CLOG_Uuid_copy( const CLOG_Uuid_t src_uuid, CLOG_Uuid_t dest_uuid );
void CLOG_Uuid_swap_bytes( CLOG_Uuid_t uuid );
#if defined(__cplusplus)
}
#endif
#endif /* of _CLOG_UUID */

View File

@ -0,0 +1,19 @@
/*
(C) 2001 by Argonne National Laboratory.
See COPYRIGHT in top-level directory.
*/
/*
MPE_Graphics should not be included here in case the system does not
support the graphics features.
*/
#ifndef _MPE_INCLUDE
#define _MPE_INCLUDE
#include "mpe_misc.h"
#include "mpe_log.h"
#ifdef MPE_GRAPHICS
#include "mpe_graphics.h"
#endif
#endif

View File

@ -0,0 +1,309 @@
/*
(C) 2001 by Argonne National Laboratory.
See COPYRIGHT in top-level directory.
*/
#ifndef _MPE_LOG_H_
#define _MPE_LOG_H_
#ifdef HAVE_WINDOWS_H
#ifdef USE_MPE_STATIC_LIBRARY
# define MPEU_DLL_SPEC
#else
# ifdef MPE_EXPORTS
# define MPEU_DLL_SPEC __declspec(dllexport)
# else
# define MPEU_DLL_SPEC __declspec(dllimport)
# endif
#endif
#else
# define MPEU_DLL_SPEC
#endif
/*
Constants, MPE_Log_XXX, are for backward compatibility reasons.
MPE is currently returning MPE_LOG_XXX status.
*/
/* function return values */
#define MPE_LOG_OK 0
#define MPE_Log_OK MPE_LOG_OK
/* no problems */
#define MPE_LOG_LOCKED_OUT 1
#define MPE_Log_LOCKED_OUT MPE_LOG_LOCKED_OUT
/* logs are being worked on, cannot insert any new entries */
#define MPE_LOG_NO_MEMORY 2
#define MPE_Log_NO_MEMORY MPE_LOG_NO_MEMORY
/* could not allocate memory for logging data */
#define MPE_LOG_FILE_PROB 3
#define MPE_Log_FILE_PROB MPE_LOG_FILE_PROB
/* cound not open file for writing out the logged info */
#define MPE_LOG_NOT_INITIALIZED 4
#define MPE_Log_NOT_INITIALIZED MPE_LOG_NOT_INITIALIZED
/* logging not initialized */
#define MPE_LOG_PACK_FAIL 5
#define MPE_Log_PACK_FAIL MPE_LOG_PACK_FAIL
#if !defined( CLOG_NOMPI )
#include "mpi.h"
#else
/*
To avoid mpi_null.h from being exposed to the user's include_dir,
the definition of MPI_Comm has to match that in mpi_null.h.
The "#if !defined( _MPI_NULL_MPI_COMM )" is to avoid duplicated
definition of MPI_Comm when both mpi_null.h and this .h are used
in the same .c file.
*/
#if !defined( _MPI_NULL_MPI_COMM )
#define _MPI_NULL_MPI_COMM
typedef int MPI_Comm;
#endif
#endif /* Endof if !defined( CLOG_NOMPI ) */
#include "clog_commset.h"
#if defined(__cplusplus)
extern "C" {
#endif
/* call before calling any other logging functions */
int MPE_Init_log( void );
int MPE_Initialized_logging( void );
/* create state with byte info data description lines in MPI_Comm */
int MPE_Describe_comm_state( MPI_Comm comm,
int state_startID, int state_finalID,
const char *name, const char *color,
const char *format );
/* create state with byte info data description lines in MPI_COMM_WORLD */
int MPE_Describe_info_state( int state_startID, int state_finalID,
const char *name, const char *color,
const char *format );
/* Internal MPE routine for MPI logging in MPI_Comm */
int MPE_Describe_known_state( const CLOG_CommIDs_t *commIDs, int local_thread,
int stateID, int state_startID, int state_finalID,
const char *name, const char *color,
const char *format );
/* create state description lines in MPI_COMM_WORLD */
int MPE_Describe_state( int state_startID, int state_finalID,
const char *name, const char *color );
/* create event with byte info data description lines in MPI_comm */
int MPE_Describe_comm_event( MPI_Comm comm, int eventID,
const char *name, const char *color,
const char *format );
/* create event with byte info data description lines in MPI_COMM_WORLD */
int MPE_Describe_info_event( int eventID,
const char *name, const char *color,
const char *format );
/* Internal MPE routine for MPI logging in MPI_Eventm */
int MPE_Describe_known_event( const CLOG_CommIDs_t *commIDs, int local_thread,
int eventID,
const char *name, const char *color,
const char *format );
/* create event description lines in MPI_COMM_WORLD */
int MPE_Describe_event( int eventID,
const char *name, const char *color );
/* fetch new user-space event number(s) */
int MPE_Log_get_event_number( void );
int MPE_Log_get_state_eventIDs( int *statedef_startID,
int *statedef_finalID );
int MPE_Log_get_solo_eventID( int *eventdef_eventID );
/* Internal MPE routine for MPI logging */
/* fetch a new known event ID of state for MPE Logging system */
int MPE_Log_get_known_eventID( void );
/* fetch a new known state ID for MPE Logging system */
int MPE_Log_get_known_stateID( void );
/* fetch a new known solo event ID for MPE Logging system */
int MPE_Log_get_known_solo_eventID( void );
/* log a MPI_Comm creation/destruction event */
int MPE_Log_commIDs_intracomm( const CLOG_CommIDs_t *commIDs, int local_thread,
int comm_etype,
const CLOG_CommIDs_t *intracommIDs );
int MPE_Log_commIDs_nullcomm( const CLOG_CommIDs_t *commIDs, int local_thread,
int comm_etype );
int MPE_Log_commIDs_intercomm( const CLOG_CommIDs_t *commIDs, int local_thread,
int comm_etype,
const CLOG_CommIDs_t *intercommIDs );
/* log the sending of a message in MPI_Comm */
int MPE_Log_commIDs_send( const CLOG_CommIDs_t *commIDs, int local_thread,
int receiver, int tag, int size );
int MPE_Log_comm_send( MPI_Comm comm, int receiver, int tag, int size );
/* log the sending of a message in MPI_COMM_WORLD */
int MPE_Log_send( int receiver, int tag, int size );
/* log the receiving of a message in MPI_Comm */
int MPE_Log_commIDs_receive( const CLOG_CommIDs_t *commIDs, int local_thread,
int sender, int tag, int size );
int MPE_Log_comm_receive( MPI_Comm comm, int sender, int tag, int size );
/* log the receiving of a message in MPI_COMM_WORLD */
int MPE_Log_receive( int sender, int tag, int size );
/* MPE_LOG_BYTESIZE is equal to sizeof(CLOG_BYTES) defined in clog.h */
#define MPE_LOG_BYTESIZE (4 * sizeof(double))
typedef char MPE_LOG_BYTES[ MPE_LOG_BYTESIZE ];
int MPE_Log_pack( MPE_LOG_BYTES bytebuf, int *position,
char tokentype, int count, const void *data );
int MPE_Log_commIDs_event( const CLOG_CommIDs_t *commIDs, int local_thread,
int event, const char *bytebuf );
/* log an event in MPI_Comm */
int MPE_Log_comm_event( MPI_Comm comm, int event, const char *bytebuf );
/* log an event in MPI_COMM_WORLD */
int MPE_Log_event( int event, int data, const char *bytebuf );
/* log a bare event in MPI_COMM_WORLD */
int MPE_Log_bare_event( int event );
/* log an infomational event in MPI_COMM_WORLD */
int MPE_Log_info_event( int event, const char *bytebuf );
int MPE_Log_sync_clocks( void );
/* start logging events */
int MPE_Start_log( void );
/* stop logging events */
int MPE_Stop_log( void );
/* Synchronize thread related data to all processes */
void MPE_Log_thread_sync( int local_thread_count );
/* write out data to a file */
int MPE_Finish_log( const char *filename );
/* get the immutable merged logfile name */
const char* MPE_Log_merged_logfilename( void );
#if defined(__cplusplus)
}
#endif
#endif
/*
The following documentation has little resemblance to current CLOG-2
format. They are kept here for historical reference purpose.
2/17/2005 Anthony Chan
*/
/*
The format:
Each line:
type process task data cycle timestamp [comment]
type - nonnegative integer representing a user-defined event type
process - an integer representing the process in which the event occurred
task - an integer representing a different notion of task. Usually
ignored.
data - an integer representing user data for the event
cycle - an integer representing a time cycle, used to distinguish
between time returned by a timer that "rolls over" during
the run
timestamp - an integer representing (when considered in conjuction
with the cycle number) a time for the event. Upshot treats
the units as microseconds
comment - an optional character string representing user data. Currently
12 character maximum, will soon hopefully be any length (really!)
All events from -100 to -1 are reserved header information events. When
a log is produced, all [-100,-1] events will be moved to the top of the
logfile and have their timestamps set to 0.
All event from -101 and below are reserved system events. This is to
provide some standardization for the logfiles, so various interpreting
programs can glean similar data from the same logfile. All [-101,...)
events will have valid timestamps and will be left in time-sorted
order in the logfile.
Formats for reserved types:
-1 Creation data *not used*
Comment: Creator and date
-2 Number of events in the logfile *not used*
Data: number of events
-3 Number of processors in the run
Data: number of processes
-4 Number of tasks used in the run *not used*
Task: number of tasks
-5 Number of event types used *not used*
Data: number event types
-6 Start time of the run
Timestamp: start time
-7 End time of the run
Timestamp: end time
-8 Number of times the timer cycled
For example, if the timer's units are in microseconds, and it has a
range of 0 - 2^32, and a run lasts 3 hours (range=4294 seconds, 3 hours=
10800 seconds), the timer would have cycled at least twice.
Data: number of timer cycles
-9 Decription of event types *not used*
Data: event type
Comment: Description
-10 printf string for event types *not used*
Data: event type
Comment: printf string
-11 Rollover point
The point at which the timer values 'rollover'
Timestamp: rollover point
-13 State definition
Define a state based on the events that signal the beginning and end
of the state. Also, define what to call the state and what color/
stipple pattern to give it in a graphical visualization tool.
Task: start event
Data: end event
Comment: color:bitmap state name
example: -13 0 3 4 0 0 Green:boxes Rhode Island
An event with type 3 will signify the entrance into a 'Rhode Island'
state. An event wil type 4 will signify the exit of the 'Rhode Island'
state.
States may be overlapped (enter a 'Rhode Island' state while in a
'Wisconsin' state while in a 'Nevada' state), and the state name may
have whitspace in it.
-100 Synchronization event
Sync events are used internally to sychronize timers on the various
processes. They do not appear in the logfiles.
-101 Send message
Represents the sending of a message
Data: process ID of the receiving process
Comment: <message-type tag of message> <size of the message, in bytes>
-102 Receive message
Represents the receiving of a message
Data: process ID of the sending process
Comment: <message-type tag of message> <size of the message, in bytes>
*/

View File

@ -0,0 +1,56 @@
! /* -*- Mode: Fortran; -*- */
!
! (C) 2001 by Argonne National Laboratory.
! See COPYRIGHT in top-level directory.
!
!
!
! MPE Logging Return Codes
!
integer MPE_LOG_OK, MPE_LOG_LOCKED_OUT
parameter ( MPE_LOG_OK = 0, MPE_LOG_LOCKED_OUT = 1 )
integer MPE_LOG_NO_MEMORY, MPE_LOG_FILE_PROB
parameter ( MPE_LOG_NO_MEMORY = 2, MPE_LOG_FILE_PROB = 3 )
integer MPE_LOG_NOT_INITIALIZED, MPE_LOG_PACK_FAIL
parameter ( MPE_LOG_NOT_INITIALIZED = 4, MPE_LOG_PACK_FAIL = 5 )
!
! MPE Logging Function Prototypes
!
integer MPE_Init_log
external MPE_Init_log
integer MPE_Initialized_logging
external MPE_Initialized_logging
integer MPE_Describe_info_state
external MPE_Describe_info_state
integer MPE_Describe_state
external MPE_Describe_state
integer MPE_Describe_info_event
external MPE_Describe_info_event
integer MPE_Describe_event
external MPE_Describe_event
integer MPE_Log_get_event_number
external MPE_Log_get_event_number
integer MPE_Log_get_state_eventIDs
external MPE_Log_get_state_eventIDs
integer MPE_Log_get_solo_eventID
external MPE_Log_get_solo_eventID
integer MPE_Start_log
external MPE_Start_log
integer MPE_Log_send
external MPE_Log_send
integer MPE_Log_receive
external MPE_Log_receive
integer MPE_Log_pack
external MPE_Log_pack
integer MPE_Log_event
external MPE_Log_event
integer MPE_Log_bare_event
external MPE_Log_bare_event
integer MPE_Log_info_event
external MPE_Log_info_event
external MPE_Log_sync_clocks
integer MPE_Log_sync_clocks
integer MPE_Stop_log
external MPE_Stop_log
integer MPE_Finish_log
external MPE_Finish_log

View File

@ -0,0 +1,64 @@
/*
(C) 2001 by Argonne National Laboratory.
See COPYRIGHT in top-level directory.
*/
/*
MPE Miscellaneous routine headers
*/
#ifndef _MPE_MISC
#define _MPE_MISC
#ifndef MPE_NOMPI
#include "mpi.h"
#if defined(__cplusplus)
extern "C" {
#endif
void MPE_Seq_begin ( MPI_Comm, int );
void MPE_Seq_end ( MPI_Comm, int );
int MPE_DelTag ( MPI_Comm, int, void *, void * );
int MPE_GetTags ( MPI_Comm, int, MPI_Comm *, int * );
int MPE_ReturnTags ( MPI_Comm, int, int );
int MPE_TagsEnd ( void );
void MPE_IO_Stdout_to_file ( char *, int );
void MPE_GetHostName ( char *, int );
void MPE_Start_debugger ( void );
void MPE_Errors_call_debugger ( char *, char *, char ** );
void MPE_Errors_call_xdbx ( char *, char * );
void MPE_Errors_call_dbx_in_xterm ( char *, char * );
void MPE_Signals_call_debugger ( void );
int MPE_Decomp1d ( int, int, int, int *, int * );
void MPE_Comm_global_rank ( MPI_Comm, int, int * );
#if defined(__cplusplus)
}
#endif
#if (defined(__STDC__) || defined(__cplusplus))
void MPE_Errors_to_dbx ( MPI_Comm *, int *, ... );
#else
void MPE_Errors_to_dbx ( MPI_Comm *, int *, char *, char *, int * );
#endif
#else
#if defined(__cplusplus)
extern "C" {
#endif
void MPE_GetHostName ( char *, int );
#if defined(__cplusplus)
}
#endif
#endif
#endif

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,513 @@
! /* -*- Mode: Fortran; -*- */
!
! (C) 2001 by Argonne National Laboratory.
! See COPYRIGHT in top-level directory.
!
! DO NOT EDIT
! This file created by buildiface
!
INTEGER MPI_SOURCE, MPI_TAG, MPI_ERROR
PARAMETER (MPI_SOURCE=3,MPI_TAG=4,MPI_ERROR=5)
INTEGER MPI_STATUS_SIZE
PARAMETER (MPI_STATUS_SIZE=5)
INTEGER MPI_STATUS_IGNORE(MPI_STATUS_SIZE)
INTEGER MPI_STATUSES_IGNORE(MPI_STATUS_SIZE,1)
INTEGER MPI_ERRCODES_IGNORE(1)
CHARACTER*1 MPI_ARGVS_NULL(1,1)
CHARACTER*1 MPI_ARGV_NULL(1)
INTEGER MPI_SUCCESS
PARAMETER (MPI_SUCCESS=0)
INTEGER MPI_ERR_OTHER
PARAMETER (MPI_ERR_OTHER=15)
INTEGER MPI_ERR_WIN
PARAMETER (MPI_ERR_WIN=45)
INTEGER MPI_ERR_FILE
PARAMETER (MPI_ERR_FILE=27)
INTEGER MPI_ERR_COUNT
PARAMETER (MPI_ERR_COUNT=2)
INTEGER MPI_ERR_SPAWN
PARAMETER (MPI_ERR_SPAWN=42)
INTEGER MPI_ERR_BASE
PARAMETER (MPI_ERR_BASE=46)
INTEGER MPI_ERR_RMA_CONFLICT
PARAMETER (MPI_ERR_RMA_CONFLICT=49)
INTEGER MPI_ERR_IN_STATUS
PARAMETER (MPI_ERR_IN_STATUS=17)
INTEGER MPI_ERR_INFO_KEY
PARAMETER (MPI_ERR_INFO_KEY=29)
INTEGER MPI_ERR_LOCKTYPE
PARAMETER (MPI_ERR_LOCKTYPE=47)
INTEGER MPI_ERR_OP
PARAMETER (MPI_ERR_OP=9)
INTEGER MPI_ERR_ARG
PARAMETER (MPI_ERR_ARG=12)
INTEGER MPI_ERR_READ_ONLY
PARAMETER (MPI_ERR_READ_ONLY=40)
INTEGER MPI_ERR_SIZE
PARAMETER (MPI_ERR_SIZE=51)
INTEGER MPI_ERR_BUFFER
PARAMETER (MPI_ERR_BUFFER=1)
INTEGER MPI_ERR_DUP_DATAREP
PARAMETER (MPI_ERR_DUP_DATAREP=24)
INTEGER MPI_ERR_UNSUPPORTED_DATAREP
PARAMETER (MPI_ERR_UNSUPPORTED_DATAREP=43)
INTEGER MPI_ERR_LASTCODE
PARAMETER (MPI_ERR_LASTCODE=1073741823)
INTEGER MPI_ERR_TRUNCATE
PARAMETER (MPI_ERR_TRUNCATE=14)
INTEGER MPI_ERR_DISP
PARAMETER (MPI_ERR_DISP=52)
INTEGER MPI_ERR_PORT
PARAMETER (MPI_ERR_PORT=38)
INTEGER MPI_ERR_INFO_NOKEY
PARAMETER (MPI_ERR_INFO_NOKEY=31)
INTEGER MPI_ERR_ASSERT
PARAMETER (MPI_ERR_ASSERT=53)
INTEGER MPI_ERR_FILE_EXISTS
PARAMETER (MPI_ERR_FILE_EXISTS=25)
INTEGER MPI_ERR_PENDING
PARAMETER (MPI_ERR_PENDING=18)
INTEGER MPI_ERR_COMM
PARAMETER (MPI_ERR_COMM=5)
INTEGER MPI_ERR_KEYVAL
PARAMETER (MPI_ERR_KEYVAL=48)
INTEGER MPI_ERR_NAME
PARAMETER (MPI_ERR_NAME=33)
INTEGER MPI_ERR_REQUEST
PARAMETER (MPI_ERR_REQUEST=19)
INTEGER MPI_ERR_GROUP
PARAMETER (MPI_ERR_GROUP=8)
INTEGER MPI_ERR_TOPOLOGY
PARAMETER (MPI_ERR_TOPOLOGY=10)
INTEGER MPI_ERR_TYPE
PARAMETER (MPI_ERR_TYPE=3)
INTEGER MPI_ERR_TAG
PARAMETER (MPI_ERR_TAG=4)
INTEGER MPI_ERR_INFO_VALUE
PARAMETER (MPI_ERR_INFO_VALUE=30)
INTEGER MPI_ERR_NOT_SAME
PARAMETER (MPI_ERR_NOT_SAME=35)
INTEGER MPI_ERR_RMA_SYNC
PARAMETER (MPI_ERR_RMA_SYNC=50)
INTEGER MPI_ERR_INFO
PARAMETER (MPI_ERR_INFO=28)
INTEGER MPI_ERR_NO_MEM
PARAMETER (MPI_ERR_NO_MEM=34)
INTEGER MPI_ERR_BAD_FILE
PARAMETER (MPI_ERR_BAD_FILE=22)
INTEGER MPI_ERR_FILE_IN_USE
PARAMETER (MPI_ERR_FILE_IN_USE=26)
INTEGER MPI_ERR_UNKNOWN
PARAMETER (MPI_ERR_UNKNOWN=13)
INTEGER MPI_ERR_UNSUPPORTED_OPERATION
PARAMETER (MPI_ERR_UNSUPPORTED_OPERATION=44)
INTEGER MPI_ERR_QUOTA
PARAMETER (MPI_ERR_QUOTA=39)
INTEGER MPI_ERR_AMODE
PARAMETER (MPI_ERR_AMODE=21)
INTEGER MPI_ERR_ROOT
PARAMETER (MPI_ERR_ROOT=7)
INTEGER MPI_ERR_RANK
PARAMETER (MPI_ERR_RANK=6)
INTEGER MPI_ERR_DIMS
PARAMETER (MPI_ERR_DIMS=11)
INTEGER MPI_ERR_NO_SUCH_FILE
PARAMETER (MPI_ERR_NO_SUCH_FILE=37)
INTEGER MPI_ERR_SERVICE
PARAMETER (MPI_ERR_SERVICE=41)
INTEGER MPI_ERR_INTERN
PARAMETER (MPI_ERR_INTERN=16)
INTEGER MPI_ERR_IO
PARAMETER (MPI_ERR_IO=32)
INTEGER MPI_ERR_ACCESS
PARAMETER (MPI_ERR_ACCESS=20)
INTEGER MPI_ERR_NO_SPACE
PARAMETER (MPI_ERR_NO_SPACE=36)
INTEGER MPI_ERR_CONVERSION
PARAMETER (MPI_ERR_CONVERSION=23)
INTEGER MPI_ERRORS_ARE_FATAL
PARAMETER (MPI_ERRORS_ARE_FATAL=1409286144)
INTEGER MPI_ERRORS_RETURN
PARAMETER (MPI_ERRORS_RETURN=1409286145)
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_MAX
PARAMETER (MPI_MAX=1476395009)
INTEGER MPI_MIN
PARAMETER (MPI_MIN=1476395010)
INTEGER MPI_SUM
PARAMETER (MPI_SUM=1476395011)
INTEGER MPI_PROD
PARAMETER (MPI_PROD=1476395012)
INTEGER MPI_LAND
PARAMETER (MPI_LAND=1476395013)
INTEGER MPI_BAND
PARAMETER (MPI_BAND=1476395014)
INTEGER MPI_LOR
PARAMETER (MPI_LOR=1476395015)
INTEGER MPI_BOR
PARAMETER (MPI_BOR=1476395016)
INTEGER MPI_LXOR
PARAMETER (MPI_LXOR=1476395017)
INTEGER MPI_BXOR
PARAMETER (MPI_BXOR=1476395018)
INTEGER MPI_MINLOC
PARAMETER (MPI_MINLOC=1476395019)
INTEGER MPI_MAXLOC
PARAMETER (MPI_MAXLOC=1476395020)
INTEGER MPI_REPLACE
PARAMETER (MPI_REPLACE=1476395021)
INTEGER MPI_COMM_WORLD
PARAMETER (MPI_COMM_WORLD=1140850688)
INTEGER MPI_COMM_SELF
PARAMETER (MPI_COMM_SELF=1140850689)
INTEGER MPI_GROUP_EMPTY
PARAMETER (MPI_GROUP_EMPTY=1207959552)
INTEGER MPI_COMM_NULL
PARAMETER (MPI_COMM_NULL=67108864)
INTEGER MPI_WIN_NULL
PARAMETER (MPI_WIN_NULL=536870912)
INTEGER MPI_FILE_NULL
PARAMETER (MPI_FILE_NULL=0)
INTEGER MPI_GROUP_NULL
PARAMETER (MPI_GROUP_NULL=134217728)
INTEGER MPI_OP_NULL
PARAMETER (MPI_OP_NULL=402653184)
INTEGER MPI_DATATYPE_NULL
PARAMETER (MPI_DATATYPE_NULL=201326592)
INTEGER MPI_REQUEST_NULL
PARAMETER (MPI_REQUEST_NULL=738197504)
INTEGER MPI_ERRHANDLER_NULL
PARAMETER (MPI_ERRHANDLER_NULL=335544320)
INTEGER MPI_INFO_NULL
PARAMETER (MPI_INFO_NULL=469762048)
INTEGER MPI_TAG_UB
PARAMETER (MPI_TAG_UB=1681915906)
INTEGER MPI_HOST
PARAMETER (MPI_HOST=1681915908)
INTEGER MPI_IO
PARAMETER (MPI_IO=1681915910)
INTEGER MPI_WTIME_IS_GLOBAL
PARAMETER (MPI_WTIME_IS_GLOBAL=1681915912)
INTEGER MPI_UNIVERSE_SIZE
PARAMETER (MPI_UNIVERSE_SIZE=1681915914)
INTEGER MPI_LASTUSEDCODE
PARAMETER (MPI_LASTUSEDCODE=1681915916)
INTEGER MPI_APPNUM
PARAMETER (MPI_APPNUM=1681915918)
INTEGER MPI_WIN_BASE
PARAMETER (MPI_WIN_BASE=1711276034)
INTEGER MPI_WIN_SIZE
PARAMETER (MPI_WIN_SIZE=1711276036)
INTEGER MPI_WIN_DISP_UNIT
PARAMETER (MPI_WIN_DISP_UNIT=1711276038)
INTEGER MPI_MAX_ERROR_STRING
PARAMETER (MPI_MAX_ERROR_STRING=1023)
INTEGER MPI_MAX_PORT_NAME
PARAMETER (MPI_MAX_PORT_NAME=255)
INTEGER MPI_MAX_OBJECT_NAME
PARAMETER (MPI_MAX_OBJECT_NAME=127)
INTEGER MPI_MAX_INFO_KEY
PARAMETER (MPI_MAX_INFO_KEY=254)
INTEGER MPI_MAX_INFO_VAL
PARAMETER (MPI_MAX_INFO_VAL=1023)
INTEGER MPI_MAX_PROCESSOR_NAME
PARAMETER (MPI_MAX_PROCESSOR_NAME=128-1)
INTEGER MPI_MAX_DATAREP_STRING
PARAMETER (MPI_MAX_DATAREP_STRING=127)
INTEGER MPI_UNDEFINED
PARAMETER (MPI_UNDEFINED=(-32766))
INTEGER MPI_KEYVAL_INVALID
PARAMETER (MPI_KEYVAL_INVALID=603979776)
INTEGER MPI_BSEND_OVERHEAD
PARAMETER (MPI_BSEND_OVERHEAD=95)
INTEGER MPI_PROC_NULL
PARAMETER (MPI_PROC_NULL=-1)
INTEGER MPI_ANY_SOURCE
PARAMETER (MPI_ANY_SOURCE=-2)
INTEGER MPI_ANY_TAG
PARAMETER (MPI_ANY_TAG=-1)
INTEGER MPI_ROOT
PARAMETER (MPI_ROOT=-3)
INTEGER MPI_GRAPH
PARAMETER (MPI_GRAPH=1)
INTEGER MPI_CART
PARAMETER (MPI_CART=2)
INTEGER MPI_DIST_GRAPH
PARAMETER (MPI_DIST_GRAPH=3)
INTEGER MPI_VERSION
PARAMETER (MPI_VERSION=2)
INTEGER MPI_SUBVERSION
PARAMETER (MPI_SUBVERSION=2)
INTEGER MPI_LOCK_EXCLUSIVE
PARAMETER (MPI_LOCK_EXCLUSIVE=234)
INTEGER MPI_LOCK_SHARED
PARAMETER (MPI_LOCK_SHARED=235)
INTEGER MPI_COMPLEX
PARAMETER (MPI_COMPLEX=1275070494)
INTEGER MPI_DOUBLE_COMPLEX
PARAMETER (MPI_DOUBLE_COMPLEX=1275072546)
INTEGER MPI_LOGICAL
PARAMETER (MPI_LOGICAL=1275069469)
INTEGER MPI_REAL
PARAMETER (MPI_REAL=1275069468)
INTEGER MPI_DOUBLE_PRECISION
PARAMETER (MPI_DOUBLE_PRECISION=1275070495)
INTEGER MPI_INTEGER
PARAMETER (MPI_INTEGER=1275069467)
INTEGER MPI_2INTEGER
PARAMETER (MPI_2INTEGER=1275070496)
INTEGER MPI_2COMPLEX
PARAMETER (MPI_2COMPLEX=1275072548)
INTEGER MPI_2DOUBLE_PRECISION
PARAMETER (MPI_2DOUBLE_PRECISION=1275072547)
INTEGER MPI_2REAL
PARAMETER (MPI_2REAL=1275070497)
INTEGER MPI_2DOUBLE_COMPLEX
PARAMETER (MPI_2DOUBLE_COMPLEX=1275076645)
INTEGER MPI_CHARACTER
PARAMETER (MPI_CHARACTER=1275068698)
INTEGER MPI_BYTE
PARAMETER (MPI_BYTE=1275068685)
INTEGER MPI_UB
PARAMETER (MPI_UB=1275068433)
INTEGER MPI_LB
PARAMETER (MPI_LB=1275068432)
INTEGER MPI_PACKED
PARAMETER (MPI_PACKED=1275068687)
INTEGER MPI_INTEGER1
PARAMETER (MPI_INTEGER1=1275068717)
INTEGER MPI_INTEGER2
PARAMETER (MPI_INTEGER2=1275068975)
INTEGER MPI_INTEGER4
PARAMETER (MPI_INTEGER4=1275069488)
INTEGER MPI_INTEGER8
PARAMETER (MPI_INTEGER8=1275070513)
INTEGER MPI_INTEGER16
PARAMETER (MPI_INTEGER16=1275072562)
INTEGER MPI_REAL4
PARAMETER (MPI_REAL4=1275069479)
INTEGER MPI_REAL8
PARAMETER (MPI_REAL8=1275070505)
INTEGER MPI_REAL16
PARAMETER (MPI_REAL16=1275072555)
INTEGER MPI_COMPLEX8
PARAMETER (MPI_COMPLEX8=1275070504)
INTEGER MPI_COMPLEX16
PARAMETER (MPI_COMPLEX16=1275072554)
INTEGER MPI_COMPLEX32
PARAMETER (MPI_COMPLEX32=1275076652)
INTEGER MPI_ADDRESS_KIND, MPI_OFFSET_KIND
PARAMETER (MPI_ADDRESS_KIND=8)
PARAMETER (MPI_OFFSET_KIND=8)
INTEGER MPI_CHAR
PARAMETER (MPI_CHAR=1275068673)
INTEGER MPI_SIGNED_CHAR
PARAMETER (MPI_SIGNED_CHAR=1275068696)
INTEGER MPI_UNSIGNED_CHAR
PARAMETER (MPI_UNSIGNED_CHAR=1275068674)
INTEGER MPI_WCHAR
PARAMETER (MPI_WCHAR=1275068942)
INTEGER MPI_SHORT
PARAMETER (MPI_SHORT=1275068931)
INTEGER MPI_UNSIGNED_SHORT
PARAMETER (MPI_UNSIGNED_SHORT=1275068932)
INTEGER MPI_INT
PARAMETER (MPI_INT=1275069445)
INTEGER MPI_UNSIGNED
PARAMETER (MPI_UNSIGNED=1275069446)
INTEGER MPI_LONG
PARAMETER (MPI_LONG=1275069447)
INTEGER MPI_UNSIGNED_LONG
PARAMETER (MPI_UNSIGNED_LONG=1275069448)
INTEGER MPI_FLOAT
PARAMETER (MPI_FLOAT=1275069450)
INTEGER MPI_DOUBLE
PARAMETER (MPI_DOUBLE=1275070475)
INTEGER MPI_LONG_DOUBLE
PARAMETER (MPI_LONG_DOUBLE=1275070476)
INTEGER MPI_LONG_LONG_INT
PARAMETER (MPI_LONG_LONG_INT=1275070473)
INTEGER MPI_UNSIGNED_LONG_LONG
PARAMETER (MPI_UNSIGNED_LONG_LONG=1275070489)
INTEGER MPI_LONG_LONG
PARAMETER (MPI_LONG_LONG=1275070473)
INTEGER MPI_FLOAT_INT
PARAMETER (MPI_FLOAT_INT=-1946157056)
INTEGER MPI_DOUBLE_INT
PARAMETER (MPI_DOUBLE_INT=-1946157055)
INTEGER MPI_LONG_INT
PARAMETER (MPI_LONG_INT=-1946157054)
INTEGER MPI_SHORT_INT
PARAMETER (MPI_SHORT_INT=-1946157053)
INTEGER MPI_2INT
PARAMETER (MPI_2INT=1275070486)
INTEGER MPI_LONG_DOUBLE_INT
PARAMETER (MPI_LONG_DOUBLE_INT=-1946157052)
INTEGER MPI_INT8_T
PARAMETER (MPI_INT8_T=1275068727)
INTEGER MPI_INT16_T
PARAMETER (MPI_INT16_T=1275068984)
INTEGER MPI_INT32_T
PARAMETER (MPI_INT32_T=1275069497)
INTEGER MPI_INT64_T
PARAMETER (MPI_INT64_T=1275070522)
INTEGER MPI_UINT8_T
PARAMETER (MPI_UINT8_T=1275068731)
INTEGER MPI_UINT16_T
PARAMETER (MPI_UINT16_T=1275068988)
INTEGER MPI_UINT32_T
PARAMETER (MPI_UINT32_T=1275069501)
INTEGER MPI_UINT64_T
PARAMETER (MPI_UINT64_T=1275070526)
INTEGER MPI_C_BOOL
PARAMETER (MPI_C_BOOL=1275068735)
INTEGER MPI_C_FLOAT_COMPLEX
PARAMETER (MPI_C_FLOAT_COMPLEX=1275070528)
INTEGER MPI_C_COMPLEX
PARAMETER (MPI_C_COMPLEX=1275070528)
INTEGER MPI_C_DOUBLE_COMPLEX
PARAMETER (MPI_C_DOUBLE_COMPLEX=1275072577)
INTEGER MPI_C_LONG_DOUBLE_COMPLEX
PARAMETER (MPI_C_LONG_DOUBLE_COMPLEX=1275072578)
INTEGER MPI_AINT
PARAMETER (MPI_AINT=1275070531)
INTEGER MPI_OFFSET
PARAMETER (MPI_OFFSET=1275070532)
INTEGER MPI_COMBINER_NAMED
PARAMETER (MPI_COMBINER_NAMED=1)
INTEGER MPI_COMBINER_DUP
PARAMETER (MPI_COMBINER_DUP=2)
INTEGER MPI_COMBINER_CONTIGUOUS
PARAMETER (MPI_COMBINER_CONTIGUOUS=3)
INTEGER MPI_COMBINER_VECTOR
PARAMETER (MPI_COMBINER_VECTOR=4)
INTEGER MPI_COMBINER_HVECTOR_INTEGER
PARAMETER (MPI_COMBINER_HVECTOR_INTEGER=5)
INTEGER MPI_COMBINER_HVECTOR
PARAMETER (MPI_COMBINER_HVECTOR=6)
INTEGER MPI_COMBINER_INDEXED
PARAMETER (MPI_COMBINER_INDEXED=7)
INTEGER MPI_COMBINER_HINDEXED_INTEGER
PARAMETER (MPI_COMBINER_HINDEXED_INTEGER=8)
INTEGER MPI_COMBINER_HINDEXED
PARAMETER (MPI_COMBINER_HINDEXED=9)
INTEGER MPI_COMBINER_INDEXED_BLOCK
PARAMETER (MPI_COMBINER_INDEXED_BLOCK=10)
INTEGER MPI_COMBINER_STRUCT_INTEGER
PARAMETER (MPI_COMBINER_STRUCT_INTEGER=11)
INTEGER MPI_COMBINER_STRUCT
PARAMETER (MPI_COMBINER_STRUCT=12)
INTEGER MPI_COMBINER_SUBARRAY
PARAMETER (MPI_COMBINER_SUBARRAY=13)
INTEGER MPI_COMBINER_DARRAY
PARAMETER (MPI_COMBINER_DARRAY=14)
INTEGER MPI_COMBINER_F90_REAL
PARAMETER (MPI_COMBINER_F90_REAL=15)
INTEGER MPI_COMBINER_F90_COMPLEX
PARAMETER (MPI_COMBINER_F90_COMPLEX=16)
INTEGER MPI_COMBINER_F90_INTEGER
PARAMETER (MPI_COMBINER_F90_INTEGER=17)
INTEGER MPI_COMBINER_RESIZED
PARAMETER (MPI_COMBINER_RESIZED=18)
INTEGER MPI_TYPECLASS_REAL
PARAMETER (MPI_TYPECLASS_REAL=1)
INTEGER MPI_TYPECLASS_INTEGER
PARAMETER (MPI_TYPECLASS_INTEGER=2)
INTEGER MPI_TYPECLASS_COMPLEX
PARAMETER (MPI_TYPECLASS_COMPLEX=3)
INTEGER MPI_MODE_NOCHECK
PARAMETER (MPI_MODE_NOCHECK=1024)
INTEGER MPI_MODE_NOSTORE
PARAMETER (MPI_MODE_NOSTORE=2048)
INTEGER MPI_MODE_NOPUT
PARAMETER (MPI_MODE_NOPUT=4096)
INTEGER MPI_MODE_NOPRECEDE
PARAMETER (MPI_MODE_NOPRECEDE=8192)
INTEGER MPI_MODE_NOSUCCEED
PARAMETER (MPI_MODE_NOSUCCEED=16384)
INTEGER MPI_THREAD_SINGLE
PARAMETER (MPI_THREAD_SINGLE=0)
INTEGER MPI_THREAD_FUNNELED
PARAMETER (MPI_THREAD_FUNNELED=1)
INTEGER MPI_THREAD_SERIALIZED
PARAMETER (MPI_THREAD_SERIALIZED=2)
INTEGER MPI_THREAD_MULTIPLE
PARAMETER (MPI_THREAD_MULTIPLE=3)
INTEGER MPI_MODE_RDONLY
PARAMETER (MPI_MODE_RDONLY=2)
INTEGER MPI_MODE_RDWR
PARAMETER (MPI_MODE_RDWR=8)
INTEGER MPI_MODE_WRONLY
PARAMETER (MPI_MODE_WRONLY=4)
INTEGER MPI_MODE_DELETE_ON_CLOSE
PARAMETER (MPI_MODE_DELETE_ON_CLOSE=16)
INTEGER MPI_MODE_UNIQUE_OPEN
PARAMETER (MPI_MODE_UNIQUE_OPEN=32)
INTEGER MPI_MODE_CREATE
PARAMETER (MPI_MODE_CREATE=1)
INTEGER MPI_MODE_EXCL
PARAMETER (MPI_MODE_EXCL=64)
INTEGER MPI_MODE_APPEND
PARAMETER (MPI_MODE_APPEND=128)
INTEGER MPI_MODE_SEQUENTIAL
PARAMETER (MPI_MODE_SEQUENTIAL=256)
INTEGER MPI_SEEK_SET
PARAMETER (MPI_SEEK_SET=600)
INTEGER MPI_SEEK_CUR
PARAMETER (MPI_SEEK_CUR=602)
INTEGER MPI_SEEK_END
PARAMETER (MPI_SEEK_END=604)
INTEGER MPI_ORDER_C
PARAMETER (MPI_ORDER_C=56)
INTEGER MPI_ORDER_FORTRAN
PARAMETER (MPI_ORDER_FORTRAN=57)
INTEGER MPI_DISTRIBUTE_BLOCK
PARAMETER (MPI_DISTRIBUTE_BLOCK=121)
INTEGER MPI_DISTRIBUTE_CYCLIC
PARAMETER (MPI_DISTRIBUTE_CYCLIC=122)
INTEGER MPI_DISTRIBUTE_NONE
PARAMETER (MPI_DISTRIBUTE_NONE=123)
INTEGER MPI_DISTRIBUTE_DFLT_DARG
PARAMETER (MPI_DISTRIBUTE_DFLT_DARG=-49767)
INTEGER *8 MPI_DISPLACEMENT_CURRENT
PARAMETER (MPI_DISPLACEMENT_CURRENT=-54278278)
INTEGER MPI_BOTTOM, MPI_IN_PLACE, MPI_UNWEIGHTED
EXTERNAL MPI_DUP_FN, MPI_NULL_DELETE_FN, MPI_NULL_COPY_FN
EXTERNAL MPI_WTIME, MPI_WTICK
EXTERNAL PMPI_WTIME, PMPI_WTICK
EXTERNAL MPI_COMM_DUP_FN, MPI_COMM_NULL_DELETE_FN
EXTERNAL MPI_COMM_NULL_COPY_FN
EXTERNAL MPI_WIN_DUP_FN, MPI_WIN_NULL_DELETE_FN
EXTERNAL MPI_WIN_NULL_COPY_FN
EXTERNAL MPI_TYPE_DUP_FN, MPI_TYPE_NULL_DELETE_FN
EXTERNAL MPI_TYPE_NULL_COPY_FN
EXTERNAL MPI_CONVERSION_FN_NULL
DOUBLE PRECISION MPI_WTIME, MPI_WTICK
DOUBLE PRECISION PMPI_WTIME, PMPI_WTICK
!DEC$ ATTRIBUTES DLLIMPORT::/MPIFCMB1/
!DEC$ ATTRIBUTES DLLIMPORT::/MPIFCMB2/
!DEC$ ATTRIBUTES DLLIMPORT::/MPIFCMB3/
!DEC$ ATTRIBUTES DLLIMPORT::/MPIFCMB4/
!DEC$ ATTRIBUTES DLLIMPORT::/MPIFCMB5/
!DEC$ ATTRIBUTES DLLIMPORT::/MPIFCMB7/
!DEC$ ATTRIBUTES DLLIMPORT::/MPIFCMB8/
CHARACTER*1 PADS_A(3), PADS_B(3)
COMMON /MPIFCMB1/ MPI_STATUS_IGNORE
COMMON /MPIFCMB2/ MPI_STATUSES_IGNORE
COMMON /MPIFCMB3/ MPI_BOTTOM
COMMON /MPIFCMB4/ MPI_IN_PLACE
COMMON /MPIFCMB5/ MPI_UNWEIGHTED
COMMON /MPIFCMB6/ MPI_ERRCODES_IGNORE
COMMON /MPIFCMB7/ MPI_ARGVS_NULL, PADS_A
COMMON /MPIFCMB8/ MPI_ARGV_NULL, PADS_B
SAVE /MPIFCMB1/,/MPIFCMB2/
SAVE /MPIFCMB3/,/MPIFCMB4/,/MPIFCMB5/,/MPIFCMB6/
SAVE /MPIFCMB7/,/MPIFCMB8/

View File

@ -0,0 +1,463 @@
/* -*- Mode: C; c-basic-offset:4 ; -*- */
/*
*
* Copyright (C) 1997 University of Chicago.
* See COPYRIGHT notice in top-level directory.
*/
/* user include file for MPI-IO programs */
#ifndef MPIO_INCLUDE
#define MPIO_INCLUDE
#include "mpi.h"
#if defined(__cplusplus)
extern "C" {
#endif
#define ROMIO_VERSION 126 /* version 1.2.6 */
/* define MPI-IO datatypes and constants */
#ifndef MPI_FILE_DEFINED
typedef struct ADIOI_FileD *MPI_File;
#endif
#define HAVE_MPI_GREQUEST 1
#ifndef HAVE_MPI_GREQUEST
typedef struct ADIOI_RequestD *MPIO_Request;
#else
#define MPIO_Request MPI_Request
#define MPIO_USES_MPI_REQUEST
/* Also rename the MPIO routines to get the MPI versions */
#define MPIO_Wait MPI_Wait
#define MPIO_Test MPI_Test
#define PMPIO_Wait PMPI_Wait
#define PMPIO_Test PMPI_Test
#endif
#define MPIO_REQUEST_DEFINED
#ifndef HAVE_MPI_OFFSET
#if defined(USE_GCC) || defined(__GNUC__)
typedef long long MPI_Offset;
#else
typedef __int64 MPI_Offset;
#endif
/* If we needed to define MPI_Offset, then we also need to make
this definition. */
#ifndef HAVE_MPI_DATAREP_FUNCTIONS
#define HAVE_MPI_DATAREP_FUNCTIONS
typedef int (MPI_Datarep_conversion_function)(void *, MPI_Datatype, int,
void *, MPI_Offset, void *);
typedef int (MPI_Datarep_extent_function)(MPI_Datatype datatype, MPI_Aint *,
void *);
#endif
#endif
#ifndef NEEDS_MPI_FINT
#endif
#ifdef NEEDS_MPI_FINT
typedef int MPI_Fint;
#endif
#ifndef HAVE_MPI_INFO
#define HAVE_MPI_INFO
#endif
#ifndef HAVE_MPI_INFO
typedef struct MPIR_Info *MPI_Info;
# define MPI_INFO_NULL ((MPI_Info) 0)
# define MPI_MAX_INFO_KEY 255
# define MPI_MAX_INFO_VAL 1024
#endif
#define MPI_MODE_RDONLY 2 /* ADIO_RDONLY */
#define MPI_MODE_RDWR 8 /* ADIO_RDWR */
#define MPI_MODE_WRONLY 4 /* ADIO_WRONLY */
#define MPI_MODE_CREATE 1 /* ADIO_CREATE */
#define MPI_MODE_EXCL 64 /* ADIO_EXCL */
#define MPI_MODE_DELETE_ON_CLOSE 16 /* ADIO_DELETE_ON_CLOSE */
#define MPI_MODE_UNIQUE_OPEN 32 /* ADIO_UNIQUE_OPEN */
#define MPI_MODE_APPEND 128 /* ADIO_APPEND */
#define MPI_MODE_SEQUENTIAL 256 /* ADIO_SEQUENTIAL */
#define MPI_DISPLACEMENT_CURRENT -54278278
#ifndef MPICH2
/* FIXME: Make sure that we get a consistent definition of MPI_FILE_NULL
in MPICH2 */
/* MPICH2 defines null object handles differently */
#define MPI_FILE_NULL ((MPI_File) 0)
#endif
#define MPIO_REQUEST_NULL ((MPIO_Request) 0)
#define MPI_SEEK_SET 600
#define MPI_SEEK_CUR 602
#define MPI_SEEK_END 604
#define MPI_MAX_DATAREP_STRING 128
#ifndef HAVE_MPI_DARRAY_SUBARRAY
#endif
#ifndef HAVE_MPI_DARRAY_SUBARRAY
# define MPI_ORDER_C 56
# define MPI_ORDER_FORTRAN 57
# define MPI_DISTRIBUTE_BLOCK 121
# define MPI_DISTRIBUTE_CYCLIC 122
# define MPI_DISTRIBUTE_NONE 123
# define MPI_DISTRIBUTE_DFLT_DARG -49767
#endif
/* MPI-IO function prototypes */
/* The compiler must support ANSI C style prototypes, otherwise
long long constants (e.g. 0) may get passed as ints. */
#ifndef HAVE_PRAGMA_HP_SEC_DEF
/* Section 9.2 */
/* Begin Prototypes */
int MPI_File_open(MPI_Comm, char *, int, MPI_Info, MPI_File *);
int MPI_File_close(MPI_File *);
int MPI_File_delete(char *, MPI_Info);
int MPI_File_set_size(MPI_File, MPI_Offset);
int MPI_File_preallocate(MPI_File, MPI_Offset);
int MPI_File_get_size(MPI_File, MPI_Offset *);
int MPI_File_get_group(MPI_File, MPI_Group *);
int MPI_File_get_amode(MPI_File, int *);
int MPI_File_set_info(MPI_File, MPI_Info);
int MPI_File_get_info(MPI_File, MPI_Info *);
/* Section 9.3 */
int MPI_File_set_view(MPI_File, MPI_Offset, MPI_Datatype,
MPI_Datatype, char *, MPI_Info);
int MPI_File_get_view(MPI_File, MPI_Offset *,
MPI_Datatype *, MPI_Datatype *, char *);
/* Section 9.4.2 */
int MPI_File_read_at(MPI_File, MPI_Offset, void *,
int, MPI_Datatype, MPI_Status *);
int MPI_File_read_at_all(MPI_File, MPI_Offset, void *,
int, MPI_Datatype, MPI_Status *);
int MPI_File_write_at(MPI_File, MPI_Offset, void *,
int, MPI_Datatype, MPI_Status *);
int MPI_File_write_at_all(MPI_File, MPI_Offset, void *,
int, MPI_Datatype, MPI_Status *);
/* nonblocking calls currently use MPIO_Request, because generalized
requests not yet implemented. For the same reason, MPIO_Test and
MPIO_Wait are used to test and wait on nonblocking I/O requests */
int MPI_File_iread_at(MPI_File, MPI_Offset, void *,
int, MPI_Datatype, MPIO_Request *);
int MPI_File_iwrite_at(MPI_File, MPI_Offset, void *,
int, MPI_Datatype, MPIO_Request *);
/* Section 9.4.3 */
int MPI_File_read(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
int MPI_File_read_all(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
int MPI_File_write(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
int MPI_File_write_all(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
/* nonblocking calls currently use MPIO_Request, because generalized
requests not yet implemented. For the same reason, MPIO_Test and
MPIO_Wait are used to test and wait on nonblocking I/O requests */
int MPI_File_iread(MPI_File, void *, int, MPI_Datatype, MPIO_Request *);
int MPI_File_iwrite(MPI_File, void *, int, MPI_Datatype, MPIO_Request *);
int MPI_File_seek(MPI_File, MPI_Offset, int);
int MPI_File_get_position(MPI_File, MPI_Offset *);
int MPI_File_get_byte_offset(MPI_File, MPI_Offset, MPI_Offset *);
/* Section 9.4.4 */
int MPI_File_read_shared(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
int MPI_File_write_shared(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
int MPI_File_iread_shared(MPI_File, void *, int, MPI_Datatype, MPIO_Request *);
int MPI_File_iwrite_shared(MPI_File, void *, int,
MPI_Datatype, MPIO_Request *);
int MPI_File_read_ordered(MPI_File, void *, int,
MPI_Datatype, MPI_Status *);
int MPI_File_write_ordered(MPI_File, void *, int,
MPI_Datatype, MPI_Status *);
int MPI_File_seek_shared(MPI_File, MPI_Offset, int);
int MPI_File_get_position_shared(MPI_File, MPI_Offset *);
/* Section 9.4.5 */
int MPI_File_read_at_all_begin(MPI_File, MPI_Offset, void *,
int, MPI_Datatype);
int MPI_File_read_at_all_end(MPI_File, void *, MPI_Status *);
int MPI_File_write_at_all_begin(MPI_File, MPI_Offset, void *,
int, MPI_Datatype);
int MPI_File_write_at_all_end(MPI_File, void *, MPI_Status *);
int MPI_File_read_all_begin(MPI_File, void *, int, MPI_Datatype);
int MPI_File_read_all_end(MPI_File, void *, MPI_Status *);
int MPI_File_write_all_begin(MPI_File, void *, int, MPI_Datatype);
int MPI_File_write_all_end(MPI_File, void *, MPI_Status *);
int MPI_File_read_ordered_begin(MPI_File, void *, int, MPI_Datatype);
int MPI_File_read_ordered_end(MPI_File, void *, MPI_Status *);
int MPI_File_write_ordered_begin(MPI_File, void *, int, MPI_Datatype);
int MPI_File_write_ordered_end(MPI_File, void *, MPI_Status *);
/* Section 9.5.1 */
int MPI_File_get_type_extent(MPI_File, MPI_Datatype, MPI_Aint *);
/* Section 9.5.3 */
int MPI_Register_datarep(char *,
MPI_Datarep_conversion_function *,
MPI_Datarep_conversion_function *,
MPI_Datarep_extent_function *,
void *);
/* Section 9.6.1 */
int MPI_File_set_atomicity(MPI_File, int);
int MPI_File_get_atomicity(MPI_File, int *);
int MPI_File_sync(MPI_File);
/* Section 4.13.3 */
#ifndef MPICH2
/* MPICH2 provides these definitions */
int MPI_File_set_errhandler( MPI_File, MPI_Errhandler );
int MPI_File_get_errhandler( MPI_File, MPI_Errhandler * );
#endif
/* End Prototypes */
#ifndef HAVE_MPI_DARRAY_SUBARRAY
/* Section 4.14.4 */
int MPI_Type_create_subarray(int, int *, int *, int *, int,
MPI_Datatype, MPI_Datatype *);
/* Section 4.14.5 */
int MPI_Type_create_darray(int, int, int,
int *, int *, int *, int *,
int, MPI_Datatype, MPI_Datatype *);
#endif
/* The globus2 device has to rename MPI_ symbols in order to use the vendor
MPI as one of its transport mechanisms. Therefore, the following undefines
should only happen if MPICH_RENAMING_MPI_FUNCS is not defined. */
/* Section 4.12.4 */
#if !defined(MPICH_RENAMING_MPI_FUNCS)
#ifdef MPI_File_f2c
#undef MPI_File_f2c
#endif
#ifdef MPI_File_c2f
#undef MPI_File_c2f
#endif
#endif
/* above needed for some versions of mpi.h in MPICH!! */
MPI_File MPI_File_f2c(MPI_Fint);
MPI_Fint MPI_File_c2f(MPI_File);
#ifndef HAVE_MPI_GREQUEST
/* The following functions are required if generalized requests are not
available, because in that case, an MPIO_Request object
is currently used for nonblocking I/O. */
int MPIO_Test(MPIO_Request *, int *, MPI_Status *);
int MPIO_Wait(MPIO_Request *, MPI_Status *);
int MPIO_Testall(int, MPIO_Request *, int *, MPI_Status *);
int MPIO_Waitall(int, MPIO_Request *, MPI_Status *);
int MPIO_Testany(int, MPIO_Request *, int *, int *, MPI_Status *);
int MPIO_Waitany(int, MPIO_Request *, int *, MPI_Status *);
int MPIO_Waitsome(int, MPIO_Request *, int *, int *, MPI_Status *);
int MPIO_Testsome(int, MPIO_Request *, int *, int *, MPI_Status *);
MPI_Fint MPIO_Request_c2f(MPIO_Request);
MPIO_Request MPIO_Request_f2c(MPI_Fint);
#endif /* HAVE_MPI_GREQUEST */
/* info functions if not defined in the MPI implementation */
#ifndef HAVE_MPI_INFO
int MPI_Info_create(MPI_Info *);
int MPI_Info_set(MPI_Info, char *, char *);
int MPI_Info_delete(MPI_Info, char *);
int MPI_Info_get(MPI_Info, char *, int, char *, int *);
int MPI_Info_get_valuelen(MPI_Info, char *, int *, int *);
int MPI_Info_get_nkeys(MPI_Info, int *);
int MPI_Info_get_nthkey(MPI_Info, int, char *);
int MPI_Info_dup(MPI_Info, MPI_Info *);
int MPI_Info_free(MPI_Info *);
/* The globus2 device has to rename MPI_ symbols in order to use the vendor
MPI as one of its transport mechanisms. Therefore, the following undefines
should only happen if MPICH_RENAMING_MPI_FUNCS is not defined. */
#if !defined(MPICH_RENAMING_MPI_FUNCS)
#ifdef MPI_Info_f2c
#undef MPI_Info_f2c
#endif
#ifdef MPI_Info_c2f
#undef MPI_Info_c2f
#endif
#endif
/* above needed for some versions of mpi.h in MPICH!! */
MPI_Fint MPI_Info_c2f(MPI_Info);
MPI_Info MPI_Info_f2c(MPI_Fint);
#endif
#endif /* HAVE_PRAGMA_HP_SEC_DEF */
/**************** BINDINGS FOR THE PROFILING INTERFACE ***************/
/* Section 9.2 */
int PMPI_File_open(MPI_Comm, char *, int, MPI_Info, MPI_File *);
int PMPI_File_close(MPI_File *);
int PMPI_File_delete(char *, MPI_Info);
int PMPI_File_set_size(MPI_File, MPI_Offset);
int PMPI_File_preallocate(MPI_File, MPI_Offset);
int PMPI_File_get_size(MPI_File, MPI_Offset *);
int PMPI_File_get_group(MPI_File, MPI_Group *);
int PMPI_File_get_amode(MPI_File, int *);
int PMPI_File_set_info(MPI_File, MPI_Info);
int PMPI_File_get_info(MPI_File, MPI_Info *);
/* Section 9.3 */
int PMPI_File_set_view(MPI_File, MPI_Offset,
MPI_Datatype, MPI_Datatype, char *, MPI_Info);
int PMPI_File_get_view(MPI_File, MPI_Offset *,
MPI_Datatype *, MPI_Datatype *, char *);
/* Section 9.4.2 */
int PMPI_File_read_at(MPI_File, MPI_Offset, void *,
int, MPI_Datatype, MPI_Status *);
int PMPI_File_read_at_all(MPI_File, MPI_Offset, void *,
int, MPI_Datatype, MPI_Status *);
int PMPI_File_write_at(MPI_File, MPI_Offset, void *,
int, MPI_Datatype, MPI_Status *);
int PMPI_File_write_at_all(MPI_File, MPI_Offset, void *,
int, MPI_Datatype, MPI_Status *);
/* nonblocking calls currently use MPIO_Request, because generalized
requests not yet implemented. For the same reason, MPIO_Test and
MPIO_Wait are used to test and wait on nonblocking I/O requests */
int PMPI_File_iread_at(MPI_File, MPI_Offset, void *,
int, MPI_Datatype, MPIO_Request *);
int PMPI_File_iwrite_at(MPI_File, MPI_Offset, void *,
int, MPI_Datatype, MPIO_Request *);
/* Section 9.4.3 */
int PMPI_File_read(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
int PMPI_File_read_all(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
int PMPI_File_write(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
int PMPI_File_write_all(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
/* nonblocking calls currently use MPIO_Request, because generalized
requests not yet implemented. For the same reason, MPIO_Test and
MPIO_Wait are used to test and wait on nonblocking I/O requests */
int PMPI_File_iread(MPI_File, void *, int, MPI_Datatype, MPIO_Request *);
int PMPI_File_iwrite(MPI_File, void *, int, MPI_Datatype, MPIO_Request *);
int PMPI_File_seek(MPI_File, MPI_Offset, int);
int PMPI_File_get_position(MPI_File, MPI_Offset *);
int PMPI_File_get_byte_offset(MPI_File, MPI_Offset, MPI_Offset *);
/* Section 9.4.4 */
int PMPI_File_read_shared(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
int PMPI_File_write_shared(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
int PMPI_File_iread_shared(MPI_File, void *, int,
MPI_Datatype, MPIO_Request *);
int PMPI_File_iwrite_shared(MPI_File, void *, int,
MPI_Datatype, MPIO_Request *);
int PMPI_File_read_ordered(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
int PMPI_File_write_ordered(MPI_File, void *, int, MPI_Datatype, MPI_Status *);
int PMPI_File_seek_shared(MPI_File, MPI_Offset, int);
int PMPI_File_get_position_shared(MPI_File, MPI_Offset *);
/* Section 9.4.5 */
int PMPI_File_read_at_all_begin(MPI_File, MPI_Offset, void *,
int, MPI_Datatype);
int PMPI_File_read_at_all_end(MPI_File, void *, MPI_Status *);
int PMPI_File_write_at_all_begin(MPI_File, MPI_Offset, void *,
int, MPI_Datatype);
int PMPI_File_write_at_all_end(MPI_File, void *, MPI_Status *);
int PMPI_File_read_all_begin(MPI_File, void *, int, MPI_Datatype);
int PMPI_File_read_all_end(MPI_File, void *, MPI_Status *);
int PMPI_File_write_all_begin(MPI_File, void *, int, MPI_Datatype);
int PMPI_File_write_all_end(MPI_File, void *, MPI_Status *);
int PMPI_File_read_ordered_begin(MPI_File, void *, int, MPI_Datatype);
int PMPI_File_read_ordered_end(MPI_File, void *, MPI_Status *);
int PMPI_File_write_ordered_begin(MPI_File, void *, int, MPI_Datatype);
int PMPI_File_write_ordered_end(MPI_File, void *, MPI_Status *);
/* Section 9.5.1 */
int PMPI_File_get_type_extent(MPI_File, MPI_Datatype, MPI_Aint *);
/* Section 9.5.3 */
int PMPI_Register_datarep(char *,
MPI_Datarep_conversion_function *,
MPI_Datarep_conversion_function *,
MPI_Datarep_extent_function *,
void *);
/* Section 9.6.1 */
int PMPI_File_set_atomicity(MPI_File, int);
int PMPI_File_get_atomicity(MPI_File, int *);
int PMPI_File_sync(MPI_File);
/* Section 4.13.3 */
#ifndef MPICH2
/* MPICH2 provides these definitions */
int PMPI_File_set_errhandler( MPI_File, MPI_Errhandler );
int PMPI_File_get_errhandler( MPI_File, MPI_Errhandler * );
#endif
#ifndef HAVE_MPI_DARRAY_SUBARRAY
/* Section 4.14.4 */
int PMPI_Type_create_subarray(int, int *, int *, int *, int,
MPI_Datatype, MPI_Datatype *);
/* Section 4.14.5 */
int PMPI_Type_create_darray(int, int, int, int *, int *,
int *, int *, int, MPI_Datatype, MPI_Datatype *);
#endif
/* Section 4.12.4 */
MPI_File PMPI_File_f2c(MPI_Fint);
MPI_Fint PMPI_File_c2f(MPI_File);
#ifndef HAVE_MPI_GREQUEST
/* The following functions are required if generalized requests are not
available, because in that case, an MPIO_Request object
is currently used for nonblocking I/O. */
int PMPIO_Test(MPIO_Request *, int *, MPI_Status *);
int PMPIO_Wait(MPIO_Request *, MPI_Status *);
int PMPIO_Testall(int, MPIO_Request *, int *, MPI_Status *);
int PMPIO_Waitall(int, MPIO_Request *, MPI_Status *);
int PMPIO_Testany(int, MPIO_Request *, int *, int *, MPI_Status *);
int PMPIO_Waitany(int, MPIO_Request *, int *, MPI_Status *);
int PMPIO_Waitsome(int, MPIO_Request *, int *, int *, MPI_Status *);
int PMPIO_Testsome(int, MPIO_Request *, int *, int *, MPI_Status *);
MPI_Fint PMPIO_Request_c2f(MPIO_Request);
MPIO_Request PMPIO_Request_f2c(MPI_Fint);
#endif /* HAVE_MPI_GREQUEST */
/* info functions if not defined in the MPI implementation */
#ifndef HAVE_MPI_INFO
int PMPI_Info_create(MPI_Info *);
int PMPI_Info_set(MPI_Info, char *, char *);
int PMPI_Info_delete(MPI_Info, char *);
int PMPI_Info_get(MPI_Info, char *, int, char *, int *);
int PMPI_Info_get_valuelen(MPI_Info, char *, int *, int *);
int PMPI_Info_get_nkeys(MPI_Info, int *);
int PMPI_Info_get_nthkey(MPI_Info, int, char *);
int PMPI_Info_dup(MPI_Info, MPI_Info *);
int PMPI_Info_free(MPI_Info *);
MPI_Fint PMPI_Info_c2f(MPI_Info);
MPI_Info PMPI_Info_f2c(MPI_Fint);
#endif
#if defined(__cplusplus)
}
#endif
#endif

Binary file not shown.