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