Actual source code: f90_absoft.h

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


  6: typedef struct {
  7:   long lower;   /* starting index of the fortran array */
  8:   long extent;  /* length of the array */
  9:   long mult;    /* multiple of 4 bytes (except for char)*/
 10: } tripple;
 11: 
 12: /* this might not be used in older version of compilers */
 13: #define F90_COOKIE     21
 14: #define F90_INT_ID     131074
 15: #define F90_DOUBLE_ID  134480899
 16: #define F90_COMPLEX_ID 268960772
 17: #define F90_CHAR_ID    32774

 19: #define F90_LONG_ID F90_INT_ID

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

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

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

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

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

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

 55: #endif