/* -*- Mode: C; c-basic-offset:4 ; -*- */
/*  
 *  (C) 2001 by Argonne National Laboratory.
 *      See COPYRIGHT in top-level directory.
 *
 * This file is automatically generated by buildiface 
 * DO NOT EDIT
 */
#include "mpi_fortimpl.h"


/* Begin MPI profiling block */
#if defined(USE_WEAK_SYMBOLS) && !defined(USE_ONLY_MPI_NAMES) 
#if defined(HAVE_MULTIPLE_PRAGMA_WEAK)
extern FORT_DLL_SPEC void FORT_CALL MPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * );
extern FORT_DLL_SPEC void FORT_CALL mpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * );
extern FORT_DLL_SPEC void FORT_CALL mpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * );
extern FORT_DLL_SPEC void FORT_CALL mpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * );

#if defined(F77_NAME_UPPER)
#pragma weak MPI_ABORT = PMPI_ABORT
#pragma weak mpi_abort__ = PMPI_ABORT
#pragma weak mpi_abort_ = PMPI_ABORT
#pragma weak mpi_abort = PMPI_ABORT
#elif defined(F77_NAME_LOWER_2USCORE)
#pragma weak MPI_ABORT = pmpi_abort__
#pragma weak mpi_abort__ = pmpi_abort__
#pragma weak mpi_abort_ = pmpi_abort__
#pragma weak mpi_abort = pmpi_abort__
#elif defined(F77_NAME_LOWER_USCORE)
#pragma weak MPI_ABORT = pmpi_abort_
#pragma weak mpi_abort__ = pmpi_abort_
#pragma weak mpi_abort_ = pmpi_abort_
#pragma weak mpi_abort = pmpi_abort_
#else
#pragma weak MPI_ABORT = pmpi_abort
#pragma weak mpi_abort__ = pmpi_abort
#pragma weak mpi_abort_ = pmpi_abort
#pragma weak mpi_abort = pmpi_abort
#endif



#elif defined(HAVE_PRAGMA_WEAK)

#if defined(F77_NAME_UPPER)
extern FORT_DLL_SPEC void FORT_CALL MPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * );

#pragma weak MPI_ABORT = PMPI_ABORT
#elif defined(F77_NAME_LOWER_2USCORE)
extern FORT_DLL_SPEC void FORT_CALL mpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * );

#pragma weak mpi_abort__ = pmpi_abort__
#elif !defined(F77_NAME_LOWER_USCORE)
extern FORT_DLL_SPEC void FORT_CALL mpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * );

#pragma weak mpi_abort = pmpi_abort
#else
extern FORT_DLL_SPEC void FORT_CALL mpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * );

#pragma weak mpi_abort_ = pmpi_abort_
#endif

#elif defined(HAVE_PRAGMA_HP_SEC_DEF)
#if defined(F77_NAME_UPPER)
#pragma _HP_SECONDARY_DEF PMPI_ABORT  MPI_ABORT
#elif defined(F77_NAME_LOWER_2USCORE)
#pragma _HP_SECONDARY_DEF pmpi_abort__  mpi_abort__
#elif !defined(F77_NAME_LOWER_USCORE)
#pragma _HP_SECONDARY_DEF pmpi_abort  mpi_abort
#else
#pragma _HP_SECONDARY_DEF pmpi_abort_  mpi_abort_
#endif

#elif defined(HAVE_PRAGMA_CRI_DUP)
#if defined(F77_NAME_UPPER)
#pragma _CRI duplicate MPI_ABORT as PMPI_ABORT
#elif defined(F77_NAME_LOWER_2USCORE)
#pragma _CRI duplicate mpi_abort__ as pmpi_abort__
#elif !defined(F77_NAME_LOWER_USCORE)
#pragma _CRI duplicate mpi_abort as pmpi_abort
#else
#pragma _CRI duplicate mpi_abort_ as pmpi_abort_
#endif

#elif defined(HAVE_WEAK_ATTRIBUTE)
#if defined(F77_NAME_UPPER)
extern FORT_DLL_SPEC void FORT_CALL MPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_ABORT")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_ABORT")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_ABORT")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_ABORT")));

#elif defined(F77_NAME_LOWER_2USCORE)
extern FORT_DLL_SPEC void FORT_CALL MPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort__")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort__")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort__")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort__")));

#elif defined(F77_NAME_LOWER_USCORE)
extern FORT_DLL_SPEC void FORT_CALL MPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort_")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort_")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort_")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort_")));

#else
extern FORT_DLL_SPEC void FORT_CALL MPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort")));

#endif
#endif /* HAVE_PRAGMA_WEAK */
#endif /* USE_WEAK_SYMBOLS */
/* End MPI profiling block */


/* These definitions are used only for generating the Fortran wrappers */
#if defined(USE_WEAK_SYMBOLS) && defined(USE_ONLY_MPI_NAMES)
#if defined(HAVE_MULTIPLE_PRAGMA_WEAK)
extern FORT_DLL_SPEC void FORT_CALL MPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * );
extern FORT_DLL_SPEC void FORT_CALL mpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * );
extern FORT_DLL_SPEC void FORT_CALL mpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * );
extern FORT_DLL_SPEC void FORT_CALL mpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * );

#if defined(F77_NAME_UPPER)
#pragma weak mpi_abort__ = MPI_ABORT
#pragma weak mpi_abort_ = MPI_ABORT
#pragma weak mpi_abort = MPI_ABORT
#elif defined(F77_NAME_LOWER_2USCORE)
#pragma weak MPI_ABORT = mpi_abort__
#pragma weak mpi_abort_ = mpi_abort__
#pragma weak mpi_abort = mpi_abort__
#elif defined(F77_NAME_LOWER_USCORE)
#pragma weak MPI_ABORT = mpi_abort_
#pragma weak mpi_abort__ = mpi_abort_
#pragma weak mpi_abort = mpi_abort_
#else
#pragma weak MPI_ABORT = mpi_abort
#pragma weak mpi_abort__ = mpi_abort
#pragma weak mpi_abort_ = mpi_abort
#endif
#elif defined(HAVE_WEAK_ATTRIBUTE)
#if defined(F77_NAME_UPPER)
extern FORT_DLL_SPEC void FORT_CALL MPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * );
extern FORT_DLL_SPEC void FORT_CALL mpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("MPI_ABORT")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("MPI_ABORT")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("MPI_ABORT")));

#elif defined(F77_NAME_LOWER_2USCORE)
extern FORT_DLL_SPEC void FORT_CALL MPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_abort__")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * );
extern FORT_DLL_SPEC void FORT_CALL mpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_abort__")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_abort__")));

#elif defined(F77_NAME_LOWER_USCORE)
extern FORT_DLL_SPEC void FORT_CALL MPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_abort_")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_abort_")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * );
extern FORT_DLL_SPEC void FORT_CALL mpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_abort_")));

#else
extern FORT_DLL_SPEC void FORT_CALL MPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_abort")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_abort")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_abort")));
extern FORT_DLL_SPEC void FORT_CALL mpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * );

#endif
#endif

#endif

/* Map the name to the correct form */
#ifndef MPICH_MPI_FROM_PMPI
#if defined(USE_WEAK_SYMBOLS)
#if defined(HAVE_MULTIPLE_PRAGMA_WEAK)
/* Define the weak versions of the PMPI routine*/
#ifndef F77_NAME_UPPER
extern FORT_DLL_SPEC void FORT_CALL PMPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * );
#endif
#ifndef F77_NAME_LOWER_2USCORE
extern FORT_DLL_SPEC void FORT_CALL pmpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * );
#endif
#ifndef F77_NAME_LOWER_USCORE
extern FORT_DLL_SPEC void FORT_CALL pmpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * );
#endif
#ifndef F77_NAME_LOWER
extern FORT_DLL_SPEC void FORT_CALL pmpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * );

#endif

#if defined(F77_NAME_UPPER)
#pragma weak pmpi_abort__ = PMPI_ABORT
#pragma weak pmpi_abort_ = PMPI_ABORT
#pragma weak pmpi_abort = PMPI_ABORT
#elif defined(F77_NAME_LOWER_2USCORE)
#pragma weak PMPI_ABORT = pmpi_abort__
#pragma weak pmpi_abort_ = pmpi_abort__
#pragma weak pmpi_abort = pmpi_abort__
#elif defined(F77_NAME_LOWER_USCORE)
#pragma weak PMPI_ABORT = pmpi_abort_
#pragma weak pmpi_abort__ = pmpi_abort_
#pragma weak pmpi_abort = pmpi_abort_
#else
#pragma weak PMPI_ABORT = pmpi_abort
#pragma weak pmpi_abort__ = pmpi_abort
#pragma weak pmpi_abort_ = pmpi_abort
#endif /* Test on name mapping */

#elif defined(HAVE_WEAK_ATTRIBUTE)
#if defined(F77_NAME_UPPER)
extern FORT_DLL_SPEC void FORT_CALL pmpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_ABORT")));
extern FORT_DLL_SPEC void FORT_CALL pmpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_ABORT")));
extern FORT_DLL_SPEC void FORT_CALL pmpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_ABORT")));

#elif defined(F77_NAME_LOWER_2USCORE)
extern FORT_DLL_SPEC void FORT_CALL PMPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort__")));
extern FORT_DLL_SPEC void FORT_CALL pmpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort__")));
extern FORT_DLL_SPEC void FORT_CALL pmpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort__")));

#elif defined(F77_NAME_LOWER_USCORE)
extern FORT_DLL_SPEC void FORT_CALL PMPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort_")));
extern FORT_DLL_SPEC void FORT_CALL pmpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort_")));
extern FORT_DLL_SPEC void FORT_CALL pmpi_abort( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort_")));

#else
extern FORT_DLL_SPEC void FORT_CALL PMPI_ABORT( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort")));
extern FORT_DLL_SPEC void FORT_CALL pmpi_abort__( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort")));
extern FORT_DLL_SPEC void FORT_CALL pmpi_abort_( MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_abort")));

#endif /* Test on name mapping */
#endif /* HAVE_MULTIPLE_PRAGMA_WEAK */
#endif /* USE_WEAK_SYMBOLS */

#ifdef F77_NAME_UPPER
#define mpi_abort_ PMPI_ABORT
#elif defined(F77_NAME_LOWER_2USCORE)
#define mpi_abort_ pmpi_abort__
#elif !defined(F77_NAME_LOWER_USCORE)
#define mpi_abort_ pmpi_abort
#else
#define mpi_abort_ pmpi_abort_
#endif /* Test on name mapping */

#ifdef F77_USE_PMPI
/* This defines the routine that we call, which must be the PMPI version
   since we're renaming the Fortran entry as the pmpi version.  The MPI name
   must be undefined first to prevent any conflicts with previous renamings. */
#undef MPI_Abort
#define MPI_Abort PMPI_Abort 
#endif

#else

#ifdef F77_NAME_UPPER
#define mpi_abort_ MPI_ABORT
#elif defined(F77_NAME_LOWER_2USCORE)
#define mpi_abort_ mpi_abort__
#elif !defined(F77_NAME_LOWER_USCORE)
#define mpi_abort_ mpi_abort
/* Else leave name alone */
#endif


#endif /* MPICH_MPI_FROM_PMPI */

/* Prototypes for the Fortran interfaces */
#include "fproto.h"
FORT_DLL_SPEC void FORT_CALL mpi_abort_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){
    *ierr = MPI_Abort( (MPI_Comm)(*v1), (int)*v2 );
}
