blob: 1fffc92ab4c5bcb16d785ead81578e3f51590a64 [file] [log] [blame]
/*BHEADER**********************************************************************
* (c) 1998 The Regents of the University of California
*
* See the file COPYRIGHT_and_DISCLAIMER for a complete copyright
* notice, contact person, and disclaimer.
*
* $Revision$
*********************************************************************EHEADER*/
/******************************************************************************
*
* Fake mpi stubs to generate serial codes without mpi
*
*****************************************************************************/
#include "utilities.h"
#ifdef HYPRE_SEQUENTIAL
int
hypre_MPI_Init( int *argc,
char ***argv )
{
return(0);
}
int
hypre_MPI_Finalize( )
{
return(0);
}
int
hypre_MPI_Abort( hypre_MPI_Comm comm,
int errorcode )
{
return(0);
}
double
hypre_MPI_Wtime( )
{
return(0.0);
}
double
hypre_MPI_Wtick( )
{
return(0.0);
}
int
hypre_MPI_Barrier( hypre_MPI_Comm comm )
{
return(0);
}
int
hypre_MPI_Comm_create( hypre_MPI_Comm comm,
hypre_MPI_Group group,
hypre_MPI_Comm *newcomm )
{
return(0);
}
int
hypre_MPI_Comm_dup( hypre_MPI_Comm comm,
hypre_MPI_Comm *newcomm )
{
return(0);
}
int
hypre_MPI_Comm_size( hypre_MPI_Comm comm,
int *size )
{
*size = 1;
return(0);
}
int
hypre_MPI_Comm_rank( hypre_MPI_Comm comm,
int *rank )
{
*rank = 0;
return(0);
}
int
hypre_MPI_Comm_free( hypre_MPI_Comm *comm )
{
return 0;
}
int
hypre_MPI_Comm_group( hypre_MPI_Comm comm,
hypre_MPI_Group *group )
{
return(0);
}
int
hypre_MPI_Group_incl( hypre_MPI_Group group,
int n,
int *ranks,
hypre_MPI_Group *newgroup )
{
return(0);
}
int
hypre_MPI_Group_free( hypre_MPI_Group *group )
{
return 0;
}
int
hypre_MPI_Address( void *location,
hypre_MPI_Aint *address )
{
return(0);
}
int
hypre_MPI_Get_count( hypre_MPI_Status *status,
hypre_MPI_Datatype datatype,
int *count )
{
return(0);
}
int
hypre_MPI_Alltoall( void *sendbuf,
int sendcount,
hypre_MPI_Datatype sendtype,
void *recvbuf,
int recvcount,
hypre_MPI_Datatype recvtype,
hypre_MPI_Comm comm )
{
return(0);
}
int
hypre_MPI_Allgather( void *sendbuf,
int sendcount,
hypre_MPI_Datatype sendtype,
void *recvbuf,
int recvcount,
hypre_MPI_Datatype recvtype,
hypre_MPI_Comm comm )
{
int i;
switch (sendtype)
{
case hypre_MPI_INT:
{
int *crecvbuf = (int *)recvbuf;
int *csendbuf = (int *)sendbuf;
for (i = 0; i < sendcount; i++)
{
crecvbuf[i] = csendbuf[i];
}
}
break;
case hypre_MPI_DOUBLE:
{
double *crecvbuf = (double *)recvbuf;
double *csendbuf = (double *)sendbuf;
for (i = 0; i < sendcount; i++)
{
crecvbuf[i] = csendbuf[i];
}
}
break;
case hypre_MPI_CHAR:
{
char *crecvbuf = (char *)recvbuf;
char *csendbuf = (char *)sendbuf;
for (i = 0; i < sendcount; i++)
{
crecvbuf[i] = csendbuf[i];
}
}
break;
}
return(0);
}
int
hypre_MPI_Allgatherv( void *sendbuf,
int sendcount,
hypre_MPI_Datatype sendtype,
void *recvbuf,
int *recvcounts,
int *displs,
hypre_MPI_Datatype recvtype,
hypre_MPI_Comm comm )
{
return ( hypre_MPI_Allgather(sendbuf, sendcount, sendtype,
recvbuf, *recvcounts, recvtype, comm) );
}
int
hypre_MPI_Gather( void *sendbuf,
int sendcount,
hypre_MPI_Datatype sendtype,
void *recvbuf,
int recvcount,
hypre_MPI_Datatype recvtype,
int root,
hypre_MPI_Comm comm )
{
return ( hypre_MPI_Allgather(sendbuf, sendcount, sendtype,
recvbuf, recvcount, recvtype, comm) );
}
int
hypre_MPI_Scatter( void *sendbuf,
int sendcount,
hypre_MPI_Datatype sendtype,
void *recvbuf,
int recvcount,
hypre_MPI_Datatype recvtype,
int root,
hypre_MPI_Comm comm )
{
return ( hypre_MPI_Allgather(sendbuf, sendcount, sendtype,
recvbuf, recvcount, recvtype, comm) );
}
int
hypre_MPI_Bcast( void *buffer,
int count,
hypre_MPI_Datatype datatype,
int root,
hypre_MPI_Comm comm )
{
return(0);
}
int
hypre_MPI_Send( void *buf,
int count,
hypre_MPI_Datatype datatype,
int dest,
int tag,
hypre_MPI_Comm comm )
{
return(0);
}
int
hypre_MPI_Recv( void *buf,
int count,
hypre_MPI_Datatype datatype,
int source,
int tag,
hypre_MPI_Comm comm,
hypre_MPI_Status *status )
{
return(0);
}
int
hypre_MPI_Isend( void *buf,
int count,
hypre_MPI_Datatype datatype,
int dest,
int tag,
hypre_MPI_Comm comm,
hypre_MPI_Request *request )
{
return(0);
}
int
hypre_MPI_Irecv( void *buf,
int count,
hypre_MPI_Datatype datatype,
int source,
int tag,
hypre_MPI_Comm comm,
hypre_MPI_Request *request )
{
return(0);
}
int
hypre_MPI_Send_init( void *buf,
int count,
hypre_MPI_Datatype datatype,
int dest,
int tag,
hypre_MPI_Comm comm,
hypre_MPI_Request *request )
{
return 0;
}
int
hypre_MPI_Recv_init( void *buf,
int count,
hypre_MPI_Datatype datatype,
int dest,
int tag,
hypre_MPI_Comm comm,
hypre_MPI_Request *request )
{
return 0;
}
int
hypre_MPI_Irsend( void *buf,
int count,
hypre_MPI_Datatype datatype,
int dest,
int tag,
hypre_MPI_Comm comm,
hypre_MPI_Request *request )
{
return 0;
}
int
hypre_MPI_Startall( int count,
hypre_MPI_Request *array_of_requests )
{
return 0;
}
int
hypre_MPI_Probe( int source,
int tag,
hypre_MPI_Comm comm,
hypre_MPI_Status *status )
{
return 0;
}
int
hypre_MPI_Iprobe( int source,
int tag,
hypre_MPI_Comm comm,
int *flag,
hypre_MPI_Status *status )
{
return 0;
}
int
hypre_MPI_Test( hypre_MPI_Request *request,
int *flag,
hypre_MPI_Status *status )
{
*flag = 1;
return(0);
}
int
hypre_MPI_Testall( int count,
hypre_MPI_Request *array_of_requests,
int *flag,
hypre_MPI_Status *array_of_statuses )
{
*flag = 1;
return(0);
}
int
hypre_MPI_Wait( hypre_MPI_Request *request,
hypre_MPI_Status *status )
{
return(0);
}
int
hypre_MPI_Waitall( int count,
hypre_MPI_Request *array_of_requests,
hypre_MPI_Status *array_of_statuses )
{
return(0);
}
int
hypre_MPI_Waitany( int count,
hypre_MPI_Request *array_of_requests,
int *index,
hypre_MPI_Status *status )
{
return(0);
}
int
hypre_MPI_Allreduce( void *sendbuf,
void *recvbuf,
int count,
hypre_MPI_Datatype datatype,
hypre_MPI_Op op,
hypre_MPI_Comm comm )
{
switch (datatype)
{
case hypre_MPI_INT:
{
int *crecvbuf = (int *)recvbuf;
int *csendbuf = (int *)sendbuf;
crecvbuf[0] = csendbuf[0];
}
break;
case hypre_MPI_DOUBLE:
{
double *crecvbuf = (double *)recvbuf;
double *csendbuf = (double *)sendbuf;
crecvbuf[0] = csendbuf[0];
}
break;
case hypre_MPI_CHAR:
{
char *crecvbuf = (char *)recvbuf;
char *csendbuf = (char *)sendbuf;
crecvbuf[0] = csendbuf[0];
}
break;
}
return(0);
}
int
hypre_MPI_Request_free( hypre_MPI_Request *request )
{
return 0;
}
int
hypre_MPI_Type_contiguous( int count,
hypre_MPI_Datatype oldtype,
hypre_MPI_Datatype *newtype )
{
return(0);
}
int
hypre_MPI_Type_vector( int count,
int blocklength,
int stride,
hypre_MPI_Datatype oldtype,
hypre_MPI_Datatype *newtype )
{
return(0);
}
int
hypre_MPI_Type_hvector( int count,
int blocklength,
hypre_MPI_Aint stride,
hypre_MPI_Datatype oldtype,
hypre_MPI_Datatype *newtype )
{
return(0);
}
int
hypre_MPI_Type_struct( int count,
int *array_of_blocklengths,
hypre_MPI_Aint *array_of_displacements,
hypre_MPI_Datatype *array_of_types,
hypre_MPI_Datatype *newtype )
{
return(0);
}
int
hypre_MPI_Type_commit( hypre_MPI_Datatype *datatype )
{
return(0);
}
int
hypre_MPI_Type_free( hypre_MPI_Datatype *datatype )
{
return(0);
}
#else
/* this is used only to eliminate compiler warnings */
int hypre_empty;
#endif