Actual source code: f90_absoft.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 (except for char)*/
      9: } tripple;
     10:
     11: /* this might not be used in older version of compilers */
     12: #define F90_COOKIE     21
     13: #define F90_INT_ID     131074
     14: #define F90_DOUBLE_ID  134480899
     15: #define F90_COMPLEX_ID 268960772
     16: #define F90_CHAR_ID    32774

     18: #define F90_LONG_ID F90_INT_ID

     20: #if !defined (PETSC_COMPLEX)
     21: #define F90_SCALAR_ID F90_DOUBLE_ID
     22: #else
     23: #define F90_SCALAR_ID F90_COMPLEX_ID
     24: #endif

     26: #define f90_header() \
     27: void* addr;      /* Pointer to the data/array */ \
     28: int   sd;        /* sizeof(DataType) in bits */  \
     29: short cookie;    \
     30: short dim_id;    /* No of dimentions */          \
     31: int   id;        /* ID corresponding to datatype */ \
     32: int   a,b;

     34: typedef struct {
     35:   f90_header()
     36:   tripple dim[1];
     37: }F90Array1d;

     39: typedef struct {
     40:   f90_header()
     41:   tripple dim[2];
     42: }F90Array2d;

     44: typedef struct {
     45:   f90_header()
     46:   tripple dim[3];
     47: }F90Array3d;

     49: typedef struct {
     50:   f90_header()
     51:   tripple dim[4];
     52: }F90Array4d;

     54: #endif