Actual source code: f90_hpux.h

  1: /* $Id: f90_hpux.h,v 1.6 2000/09/22 18:54:10 balay Exp $ */

  3: #if !defined (__F90_HPUX_H)

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

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

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

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

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

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

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

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

 53: #endif