Actual source code: f90_hpux.h

      2: #if !defined (__F90_HPUX_H)

      5: typedef struct {
      6:   long lower;   /* starting index of the fortran array */
      7:   long extent;  /* length of the array */
      8:   long mult;    /* in bytes */
      9: } tripple;

     11: /*
     12:   The following constants are just
     13:   guesses. It is strange that the HP folks use such
     14:   constants to represent the dimension
     15: */
     16: #define F90_1D_ID  257
     17: #define F90_2D_ID  513
     18: #define F90_3D_ID  769
     19: #define F90_4D_1D  1025
     20: #define F90_COOKIE 443

     22: /*
     23:  addr   - address
     24:  sd     - sizeof datatype
     25:  ndim   - DIMENSION ID
     26:  cookie - f90 cookie
     27:  a      - junk - always 0. Null pointer??
     28:  */

     30: #define f90_header() void* addr; long sd; short ndim; short cookie; long a;

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

     37: typedef struct {
     38:   f90_header()
     39:   tripple dim[2];   /* dim2,dim1 */
     40: }F90Array2d;

     42: typedef struct {
     43:   f90_header()
     44:   tripple dim[3];   /* dim3,dim2,dim1 */
     45: }F90Array3d;

     47: typedef struct {
     48:   f90_header()
     49:   tripple dim[4];   /* dim4,dim3,dim2,dim1 */
     50: }F90Array4d;

     52: #endif