summaryrefslogtreecommitdiff
path: root/src/include/cctk_Types.h
diff options
context:
space:
mode:
authorallen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac>2000-01-16 11:07:13 +0000
committerallen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac>2000-01-16 11:07:13 +0000
commitcbd18a0c8a9d8682246f4388207257e494525d21 (patch)
tree44e32513b088854332388d4a5df8a07ac0f63ac3 /src/include/cctk_Types.h
parentd4b2a38965abaca84905600bd2dfe2363988c9fa (diff)
All include files for thorns now have cctk_ then a capital letter (!)
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1262 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/include/cctk_Types.h')
-rw-r--r--src/include/cctk_Types.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/src/include/cctk_Types.h b/src/include/cctk_Types.h
new file mode 100644
index 00000000..5bc203f7
--- /dev/null
+++ b/src/include/cctk_Types.h
@@ -0,0 +1,121 @@
+ /*@@
+ @header cctk_types.h
+ @date Mon Jun 21 21:03:27 1999
+ @author Tom Goodale
+ @desc
+ Defines the appropriate types based upon the precision.
+ Should be included by cctk_Config.h .
+ @enddesc
+ @@*/
+
+#ifndef _CCTK_TYPES_H_
+#define _CCTK_TYPES_H_
+
+/* 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
+
+/* Structures for complex types */
+
+#ifdef CCTK_REAL16
+typedef struct
+{
+ CCTK_REAL16 Re;
+ CCTK_REAL16 Im;
+} CCTK_COMPLEX32;
+#endif
+
+#ifdef CCTK_REAL8
+typedef struct
+{
+ CCTK_REAL8 Re;
+ CCTK_REAL8 Im;
+} CCTK_COMPLEX16;
+#endif
+
+#ifdef CCTK_REAL4
+typedef struct
+{
+ CCTK_REAL4 Re;
+ CCTK_REAL4 Im;
+} CCTK_COMPLEX8;
+#endif
+
+/* Character type */
+typedef unsigned char CCTK_CHAR;
+
+#endif /* CCODE */
+
+/* Define stuff for fortran. */
+#ifdef FCODE
+
+#define CCTK_POINTER integer*SIZEOF_CHAR_P
+
+#define CCTK_STRING CCTK_POINTER
+
+#define CCTK_REAL16 REAL*16
+#define CCTK_REAL8 REAL*8
+#define CCTK_REAL4 REAL*4
+
+#define CCTK_INT8 INTEGER*8
+#define CCTK_INT4 INTEGER*4
+#define CCTK_INT2 INTEGER*2
+
+#define CCTK_COMPLEX32 COMPLEX*32
+#define CCTK_COMPLEX16 COMPLEX*16
+#define CCTK_COMPLEX8 COMPLEX*8
+
+#define CCTK_CHAR CHARACTER
+
+#endif /*FCODE */
+
+/* Now pick the types based upon the precision variable. */
+
+/* Floating point precision */
+#ifdef CCTK_REAL_PRECISION_16
+#define CCTK_REAL CCTK_REAL16
+#endif
+
+#ifdef CCTK_REAL_PRECISION_8
+#define CCTK_REAL CCTK_REAL8
+#endif
+
+#ifdef CCTK_REAL_PRECISION_4
+#define CCTK_REAL CCTK_REAL4
+#endif
+
+/* Integer precision */
+
+#ifdef CCTK_INTEGER_PRECISION_8
+#define CCTK_INT CCTK_INT8
+#endif
+
+#ifdef CCTK_INTEGER_PRECISION_4
+#define CCTK_INT CCTK_INT4
+#endif
+
+#ifdef CCTK_INTEGER_PRECISION_2
+#define CCTK_INT CCTK_INT2
+#endif
+
+/* Complex precision */
+#ifdef CCTK_REAL_PRECISION_16
+#define CCTK_COMPLEX CCTK_COMPLEX32
+#endif
+
+#ifdef CCTK_REAL_PRECISION_8
+#define CCTK_COMPLEX CCTK_COMPLEX16
+#endif
+
+#ifdef CCTK_REAL_PRECISION_4
+#define CCTK_COMPLEX CCTK_COMPLEX8
+#endif
+
+#endif /*_CCTK_TYPES_H_ */
+