MOOCHO (Single Doxygen Collection) Version of the Day
RTOp_MPI_config.h
Go to the documentation of this file.
00001 /*
00002 // @HEADER
00003 // ***********************************************************************
00004 // 
00005 // RTOp: Interfaces and Support Software for Vector Reduction Transformation
00006 //       Operations
00007 //                Copyright (2006) Sandia Corporation
00008 // 
00009 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00010 // license for use of this work by or on behalf of the U.S. Government.
00011 // 
00012 // This library is free software; you can redistribute it and/or modify
00013 // it under the terms of the GNU Lesser General Public License as
00014 // published by the Free Software Foundation; either version 2.1 of the
00015 // License, or (at your option) any later version.
00016 //  
00017 // This library is distributed in the hope that it will be useful, but
00018 // WITHOUT ANY WARRANTY; without even the implied warranty of
00019 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00020 // Lesser General Public License for more details.
00021 //  
00022 // You should have received a copy of the GNU Lesser General Public
00023 // License along with this library; if not, write to the Free Software
00024 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00025 // USA
00026 // Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov) 
00027 // 
00028 // ***********************************************************************
00029 // @HEADER
00030 */
00031 
00032 /* If the macro RTOp_USE_MPI is defined, then these */
00033 /* declarations will be MPI compatible.  If not then */
00034 /* dummy MPI declarations will be used. */
00035 /* */
00036 
00037 #ifndef RTOP_MPI_CONFIG_H
00038 #define RTOP_MPI_CONFIG_H
00039 
00040 #include <RTOp_ConfigDefs.hpp>  /* This C++ header also has a proper C mode */
00041 
00042 #ifdef HAVE_MPI
00043 #define RTOp_USE_MPI  /* This macro is used in several places so we must keep it */
00044 #endif
00045 
00046 #ifdef RTOp_USE_MPI
00047 #include "mpi.h"       /* Use real MPI declarations */
00048 #else
00049 /* #warning causes errors on Atlantis
00050 #warning "Compiling in support for dummy MPI, real MPI will not be available!" */
00051 #include "RTOp_mpi.h"  /* Use dummy MPI declarations */
00052 #endif
00053 
00054 /*
00055 #ifdef __cplusplus
00056 extern "C" {
00057 #endif
00058 */
00059 
00071 
00073 typedef MPI_Datatype            RTOp_Datatype;   /*< Compatible with MPI_Datatype? */
00074 #define RTOpMPI_VALUE_TYPE      MPI_DOUBLE       /*< (MPI only) Compatible with fortran DOUBLE PRECISION? */
00075 #define RTOpMPI_INDEX_TYPE      MPI_INT          /*< (MPI only) Compatible with fortran INTEGER? */
00076 #define RTOpMPI_CHAR_TYPE       MPI_CHAR         /*< (MPI only) Compatible with fortran CHARACTER? */
00077 
00078 /* The maxinum number of characters in a name of a reduction/transformation operator class */
00079 #define RTOp_MAX_REDUCT_TRANS_OP_CLASS_NAME  50
00080 
00083 /*
00084 #ifdef __cplusplus
00085 }
00086 #endif
00087 */
00088 
00089 #endif /* RTOP_MPI_CONFIG_H */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines