summaryrefslogtreecommitdiff
path: root/src/include/cctk_Types.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/cctk_Types.h')
-rw-r--r--src/include/cctk_Types.h105
1 files changed, 65 insertions, 40 deletions
diff --git a/src/include/cctk_Types.h b/src/include/cctk_Types.h
index eeda7d77..cf92dacf 100644
--- a/src/include/cctk_Types.h
+++ b/src/include/cctk_Types.h
@@ -14,9 +14,7 @@
/* Make sure that cctk_config.h is available in case someone includes
* this by hand.
*/
-#ifndef _CCTK_CONFIG_H_
#include "cctk_Config.h"
-#endif
/* Define stuff for C. */
#ifdef CCODE
@@ -34,6 +32,18 @@ typedef const char * CCTK_STRING;
#define HAVE_CCTK_CHAR 1
#define HAVE_CCTK_STRING 1
+/* Floating point types */
+
+#ifdef HAVE_CCTK_REAL16
+typedef CCTK_REAL16_TYPE CCTK_REAL16;
+#endif
+#ifdef HAVE_CCTK_REAL8
+typedef CCTK_REAL8_TYPE CCTK_REAL8;
+#endif
+#ifdef HAVE_CCTK_REAL4
+typedef CCTK_REAL4_TYPE CCTK_REAL4;
+#endif
+
/* Declarations for complex types */
#ifdef __cplusplus
@@ -50,7 +60,7 @@ typedef long double _Complex CCTK_COMPLEX32;
#endif
#ifdef HAVE_CCTK_REAL8
-#define HAVE_CCTK_COMPLEX16 1
+# define HAVE_CCTK_COMPLEX16 1
# ifdef __cplusplus
typedef std::complex<CCTK_REAL8> CCTK_COMPLEX16;
# else
@@ -71,9 +81,24 @@ typedef float _Complex CCTK_COMPLEX8;
typedef unsigned char CCTK_BYTE;
#define HAVE_CCTK_BYTE 1
+/* Integer types */
+
+#ifdef HAVE_CCTK_INT8
+typedef CCTK_INT8_TYPE CCTK_INT8;
+#endif
+#ifdef HAVE_CCTK_INT4
+typedef CCTK_INT4_TYPE CCTK_INT4;
+#endif
+#ifdef HAVE_CCTK_INT2
+typedef CCTK_INT2_TYPE CCTK_INT2;
+#endif
+#ifdef HAVE_CCTK_INT1
+typedef CCTK_INT1_TYPE CCTK_INT1;
+#endif
+
#endif /* CCODE */
-/* Define stuff for fortran. */
+/* Define stuff for Fortran. */
#ifdef FCODE
#define CCTK_POINTER integer*SIZEOF_CHAR_P
@@ -94,34 +119,34 @@ typedef unsigned char CCTK_BYTE;
#define HAVE_CCTK_STRING 1
#ifdef HAVE_CCTK_INT8
-#define CCTK_INT8 INTEGER*8
+# define CCTK_INT8 INTEGER*8
#endif
#ifdef HAVE_CCTK_INT4
-#define CCTK_INT4 INTEGER*4
+# define CCTK_INT4 INTEGER*4
#endif
#ifdef HAVE_CCTK_INT2
-#define CCTK_INT2 INTEGER*2
+# define CCTK_INT2 INTEGER*2
#endif
#ifdef HAVE_CCTK_INT1
-#define CCTK_INT1 INTEGER*1
+# define CCTK_INT1 INTEGER*1
#endif
#ifdef HAVE_CCTK_REAL16
-#define CCTK_REAL16 REAL*CCTK_REAL16_KIND
-#define HAVE_CCTK_COMPLEX32 1
-#define CCTK_COMPLEX32 COMPLEX*CCTK_COMPLEX32_KIND
+# define CCTK_REAL16 REAL*CCTK_REAL16_KIND
+# define HAVE_CCTK_COMPLEX32 1
+# define CCTK_COMPLEX32 COMPLEX*CCTK_COMPLEX32_KIND
#endif
#ifdef HAVE_CCTK_REAL8
-#define CCTK_REAL8 REAL*8
-#define HAVE_CCTK_COMPLEX16 1
-#define CCTK_COMPLEX16 COMPLEX*16
+# define CCTK_REAL8 REAL*8
+# define HAVE_CCTK_COMPLEX16 1
+# define CCTK_COMPLEX16 COMPLEX*16
#endif
#ifdef HAVE_CCTK_REAL4
-#define CCTK_REAL4 REAL*4
-#define HAVE_CCTK_COMPLEX8 1
-#define CCTK_COMPLEX8 COMPLEX*8
+# define CCTK_REAL4 REAL*4
+# define HAVE_CCTK_COMPLEX8 1
+# define CCTK_COMPLEX8 COMPLEX*8
#endif
/* Should be unsigned, but Fortran doesn't have that */
@@ -134,60 +159,58 @@ typedef unsigned char CCTK_BYTE;
/* Floating point precision */
#ifdef CCTK_REAL_PRECISION_16
-#define CCTK_REAL_PRECISION 16
-#define CCTK_REAL CCTK_REAL16
+# define CCTK_REAL_PRECISION 16
+# define CCTK_REAL CCTK_REAL16
#endif
#ifdef CCTK_REAL_PRECISION_8
-#define CCTK_REAL_PRECISION 8
-#define CCTK_REAL CCTK_REAL8
+# define CCTK_REAL_PRECISION 8
+# define CCTK_REAL CCTK_REAL8
#endif
#ifdef CCTK_REAL_PRECISION_4
-#define CCTK_REAL_PRECISION 4
-#define CCTK_REAL CCTK_REAL4
+# define CCTK_REAL_PRECISION 4
+# define CCTK_REAL CCTK_REAL4
#endif
/* Integer precision */
#ifdef CCTK_INTEGER_PRECISION_8
-#define CCTK_INTEGER_PRECISION 8
-#define CCTK_INT CCTK_INT8
+# define CCTK_INTEGER_PRECISION 8
+# define CCTK_INT CCTK_INT8
#endif
#ifdef CCTK_INTEGER_PRECISION_4
-#define CCTK_INTEGER_PRECISION 4
-#define CCTK_INT CCTK_INT4
+# define CCTK_INTEGER_PRECISION 4
+# define CCTK_INT CCTK_INT4
#endif
#ifdef CCTK_INTEGER_PRECISION_2
-#define CCTK_INTEGER_PRECISION 2
-#define CCTK_INT CCTK_INT2
+# define CCTK_INTEGER_PRECISION 2
+# define CCTK_INT CCTK_INT2
#endif
#ifdef CCTK_INTEGER_PRECISION_1
-#define CCTK_INTEGER_PRECISION 1
-#define CCTK_INT CCTK_INT1
+# define CCTK_INTEGER_PRECISION 1
+# define CCTK_INT CCTK_INT1
#endif
/* Complex precision */
#ifdef CCTK_REAL_PRECISION_16
-#define CCTK_COMPLEX_PRECISION 32
-#define CCTK_COMPLEX CCTK_COMPLEX32
+# define CCTK_COMPLEX_PRECISION 32
+# define CCTK_COMPLEX CCTK_COMPLEX32
#endif
#ifdef CCTK_REAL_PRECISION_8
-#define CCTK_COMPLEX_PRECISION 16
-#define CCTK_COMPLEX CCTK_COMPLEX16
+# define CCTK_COMPLEX_PRECISION 16
+# define CCTK_COMPLEX CCTK_COMPLEX16
#endif
#ifdef CCTK_REAL_PRECISION_4
-#define CCTK_COMPLEX_PRECISION 8
-#define CCTK_COMPLEX CCTK_COMPLEX8
+# define CCTK_COMPLEX_PRECISION 8
+# define CCTK_COMPLEX CCTK_COMPLEX8
#endif
-#endif /* CCODE */
-
/* Determine whether we have a traditional or an ANSI cpp. */
#ifdef FCODE
/* The empty
@@ -230,7 +253,7 @@ typedef unsigned char CCTK_BYTE;
integer, parameter :: cctki_use_/**/nam = kind(nam)
#endif
-#else /* F90CODE */
+#else /* #ifndef F90CODE */
/* Just declare it; FORTRAN 77 has no good way of marking it as used
within a block of declarations */
@@ -265,4 +288,6 @@ typedef unsigned char CCTK_BYTE;
#endif /* HAVE_..._ATTRIBUTE_UNUSED */
+#endif /* CCODE */
+
#endif /*_CCTK_TYPES_H_ */