Actual source code: f90_win32.h
2: #if !defined (__F90_WIN32_H)
4:
5: typedef struct {
6: long extent; /* length of the array */
7: long mult; /* stride in bytes */
8: long lower; /* starting index of the fortran array */
9: } tripple;
11: /*
12: The following constants are just
13: guesses. The program behavies strangly
14: if these constants are not set in
15: the f90 pointer
16: */
17: #define F90_CHAR_ID 234881027
18: #define F90_INT_ID 50331651
19: #define F90_DOUBLE_ID 167772163
20: #define F90_COMPLEX_ID 218103811
23: #if !defined (PETSC_COMPLEX)
24: #define F90_SCALAR_ID F90_DOUBLE_ID
25: #else
26: #define F90_SCALAR_ID F90_COMPLEX_ID
27: #endif
30: #define f90_header() \
31: void* addr; /* Pointer to the data */ \
32: long sd; /* sizeof(DataType) in bits */ \
33: long sum_d; /* -sumof(lower*mult) */ \
34: int id; /* integer id representing the datatype */ \
35: int ndim; /* No of dimensions */
37: typedef struct {
38: f90_header()
39: tripple dim[1];
40: }F90Array1d;
42: typedef struct {
43: f90_header()
44: tripple dim[2]; /* dim1,dim2 */
45: }F90Array2d;
47: typedef struct {
48: f90_header()
49: tripple dim[3]; /* dim1,dim2,dim3 */
50: }F90Array3d;
52: typedef struct {
53: f90_header()
54: tripple dim[4]; /* dim1,dim2,dim3,dim4 */
55: }F90Array4d;
58: #endif