Actual source code: f90_win32.h

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

  3: #if !defined (__F90_WIN32_H)
  5: 
  6: typedef struct {
  7:   long extent;  /* length of the array */
  8:   long mult;    /* stride in bytes */
  9:   long lower;   /* starting index of the fortran array */
 10: } tripple;

 12: /*
 13:   The following constants are just
 14:   guesses. The program behavies strangly
 15:   if these constants are not set in
 16:   the f90 pointer
 17: */
 18: #define F90_CHAR_ID    234881027
 19: #define F90_INT_ID     50331651
 20: #define F90_DOUBLE_ID  167772163
 21: #define F90_COMPLEX_ID 218103811


 24: #if !defined (PETSC_COMPLEX)
 25: #define F90_SCALAR_ID F90_DOUBLE_ID
 26: #else
 27: #define F90_SCALAR_ID F90_COMPLEX_ID
 28: #endif


 31: #define f90_header() 
 32: void*          addr;    /* Pointer to the data */ 
 33: long           sd;      /* sizeof(DataType) in bits */  
 34: long           sum_d;   /* -sumof(lower*mult) */ 
 35: int            id;      /* integer id representing the datatype */ 
 36: int            ndim;    /* No of dimensions */

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

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

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

 53: typedef struct {
 54:   f90_header()
 55:   tripple dim[4];   /* dim1,dim2,dim3,dim4 */
 56: }F90Array4d;


 59: #endif