/* -*- Mode: C; c-basic-offset:4 ; -*- */ /* * * (C) 2003 by Argonne National Laboratory. * See COPYRIGHT in top-level directory. */ #ifndef MPIR_F90_INCLUDED #define MPIR_F90_INCLUDED /* Get the parameters that define the integer and real data models * for Fortran 90. These are needed to implement the MPI_Type_create_f90_xxx * functions, which are available in C, F90, and C++ (but not in Fortran 77, * because these are part of the extended Fortran support). * * These use the Fortran 90 terms precision and range which have the * following meanings: * * precision - number of digits to ??? (FIXME: exact definition) * range - number of decimal digits (exponent range for reals) */ /* Real and double model: * precision and range for reals and for doubles * The value is two "precision, range", as integers */ #define MPIR_F90_REAL_MODEL @FC_REAL_MODEL@ #define MPIR_F90_DOUBLE_MODEL @FC_DOUBLE_MODEL@ /* integer model: * a single integer, giving the value of the range */ #define MPIR_F90_INTEGER_MODEL @FC_INTEGER_MODEL@ #define MPIR_F90_ALL_INTEGER_MODELS @FC_ALL_INTEGER_MODELS@ /* integer model map: * a set of triples of integers, giving the maximum range for * each 'kind', as in the Fortran 90 declaration * integer(kind=k) . That is, * * r1,k1,s1, r2,k2,s2 ... * * where kind ki has range ri and is si bytes long * * This can be used to find a Fortran 90 integer type with a given range. * */ #define MPIR_F90_INTEGER_MODEL_MAP @FC_INTEGER_MODEL_MAP@ #endif