00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef BL_REAL_H
00024 #define BL_REAL_H
00025
00026
00027
00028
00029
00030 #ifdef BL_USE_FLOAT
00031 # undef BL_USE_DOUBLE
00032 # undef BL_USE_FLOAT
00033
00039 # define BL_USE_FLOAT 1
00040 #else
00041 # undef BL_USE_FLOAT
00042 # undef BL_USE_DOUBLE
00043
00051 # define BL_USE_DOUBLE 1
00052 #endif
00053
00054 #if !defined(BL_LANG_FORT)
00055
00068 #ifdef BL_USE_FLOAT
00069 typedef float Real;
00070 #else
00071 typedef double Real;
00072 #endif
00073
00074 #else
00075
00089 #ifdef BL_USE_IFLOAT
00090 # define INTEGER_T integer*4
00091 #else
00092 # define INTEGER_T integer
00093 #endif
00094
00095 #ifdef BL_USE_FLOAT
00096 # define REAL_T real*4
00097 #if __STDC__==1
00098 # define BL_REAL(a) a##E0
00099 # define BL_REAL_E(a,b) a##E##b
00100 #else
00101 # define BL_REAL(a) aE0
00102 # define BL_REAL_E(a,b) aEb
00103 #endif
00104 #else
00105 # define REAL_T real*8
00106 #if __STDC__==1
00107 # define BL_REAL(a) a##D0
00108 # define BL_REAL_E(a,b) a##D##b
00109 #else
00110 # define BL_REAL(a) aD0
00111 # define BL_REAL_E(a,b) aDb
00112 #endif
00113 #endif
00114
00115 #endif
00116
00117 #if defined(BL_ARCH_CRAY)
00118 # if !defined(BL_USE_FLOAT)
00119 # error BL_USE_FLOAT required on CRAY architectures
00120 # endif
00121 #endif
00122
00123 #endif