Actual source code: f90_IRIX.h


  5: typedef struct {
  6:   long lower;   /* starting index of the fortran array */
  7:   long extent;  /* length of the array */
  8:   long mult;    /* multiple of 4 bytes */
  9: } tripple;
 10: 
 11: /* this might not be used in older version of compilers */
 12: #define F90_COOKIE     -1744830464
 13: #define F90_INT_ID     33562624
 14: #define F90_DOUBLE_ID  52445192
 15: #define F90_COMPLEX_ID 69238800

 17: #if !defined (PETSC_COMPLEX)
 18: #define F90_SCALAR_ID F90_DOUBLE_ID
 19: #else
 20: #define F90_SCALAR_ID F90_COMPLEX_ID
 21: #endif

 23: #if (PETSC_SIZEOF_VOID_P == 8)
 24: #define F90_LONG_ID    35667976
 25: #else
 26: #define F90_LONG_ID    33562624
 27: #endif


 30: #define f90_header() \
 31: void* addr;        /* Pointer to the data/array */ \
 32: long  sd;          /* sizeof(DataType) in bits */  \
 33: int   cookie; \
 34: int   ndim;        /* No of dimentions */          \
 35: int   a;  \
 36: int   id; /* ID corresponding to datatype */ \
 37: void* addr_r; /* address redefined */ \
 38: long  size; /* len1*len2* ... * sd */

 40: typedef struct {
 41:   f90_header()
 42:   tripple dim[1];
 43: }F90Array1d;

 45: typedef struct {
 46:   f90_header()
 47:   tripple dim[2];
 48: }F90Array2d;

 50: typedef struct {
 51:   f90_header()
 52:   tripple dim[3];
 53: }F90Array3d;

 55: typedef struct {
 56:   f90_header()
 57:   tripple dim[4];
 58: }F90Array4d;

 60: #endif