Actual source code: f90_solaris_old.h
1: /* $Id: f90_solaris_old.h,v 1.6 2000/09/22 18:54:10 balay Exp $ */
3: #if !defined (__F90_SOLARIS_OLD_H)
5:
6: typedef struct {
7: long lower; /* starting index of the fortran array */
8: long extent; /* length of the array */
9: long mult; /* in bytes for char,32 bit words for others. Why???? */
10: } tripple;
12: /*
13: The following constants are just
14: guesses. The program behavies strangly
15: if these constants are not set in
16: the f90 pointer
17: */
18: #define F90_CHAR_ID 100665344
19: #define F90_INT_ID 35659784
20: #define F90_DOUBLE_ID 58736640
21: #define F90_COMPLEX_ID 68190216
22: #define F90_COOKIE 36864
24: #if !defined (PETSC_COMPLEX)
25: #define F90_SCALAR_ID F90_DOUBLE_ID
26: #else
27: #define F90_SCALAR_ID F90_COMPLEX_ID
28: #endif
31: #define f90_header()
32: void* addr; /* Pointer to the data */
33: int sd; /* sizeof(DataType) in bits */
34: unsigned short cookie; /* a wierd f90 cookie */
35: unsigned short ndim; /* No of dimensions */
36: int id; /* integer id representing the datatype */
37: int a,b; /* unknown stuff - always zero. */
39: typedef struct {
40: f90_header()
41: tripple dim[1];
42: }F90Array1d;
44: typedef struct {
45: f90_header()
46: tripple dim[2]; /* dim1,dim2 */
47: }F90Array2d;
49: typedef struct {
50: f90_header()
51: tripple dim[3]; /* dim1,dim2,dim3 */
52: }F90Array3d;
54: typedef struct {
55: f90_header()
56: tripple dim[4]; /* dim1,dim2,dim3,dim4 */
57: }F90Array4d;
59: #endif