Actual source code: petscdadef.h

  2: !
  3: !  Include file for Fortran use of the DA (distributed array) package in PETSc
  4: !
  5: #if !defined (__PETSCDADEF_H)

 8:  #include finclude/petscisdef.h
 9:  #include finclude/petscvecdef.h
 10:  #include finclude/petscmatdef.h

 12: #if !defined(PETSC_USE_FORTRAN_DATATYPES)
 13: #define DA PetscFortranAddr
 14: #define DM PetscFortranAddr
 15: #define ADDA PetscFortranAddr
 16: #define SDA PetscFortranAddr
 17: #endif
 18: #define DAPeriodicType PetscEnum
 19: #define DAStencilType PetscEnum
 20: #define DADirection PetscEnum
 21: #define DMMG PetscFortranAddr
 22: #define DMMGArray PetscFortranAddr
 23: #define DMComposite PetscFortranAddr


 26: #define DALocalInfo PetscInt
 27: !
 28: !   DA_LOCAL_INFO_SIZE is one large than the size incase the DA is larger than an integer (on 64 bit systems).
 29: !   non-int fields are not accessiable from fortran.
 30: !
 31: #define DA_LOCAL_INFO_SIZE 22
 32: #define DA_LOCAL_INFO_DIM 1
 33: #define DA_LOCAL_INFO_DOF 2
 34: #define DA_LOCAL_INFO_MX 4
 35: #define DA_LOCAL_INFO_MY 5
 36: #define DA_LOCAL_INFO_MZ 6
 37: #define DA_LOCAL_INFO_XS 7
 38: #define DA_LOCAL_INFO_YS 8
 39: #define DA_LOCAL_INFO_ZS 9
 40: #define DA_LOCAL_INFO_XM 10
 41: #define DA_LOCAL_INFO_YM 11
 42: #define DA_LOCAL_INFO_ZM 12
 43: #define DA_LOCAL_INFO_GXS 13
 44: #define DA_LOCAL_INFO_GYS 14
 45: #define DA_LOCAL_INFO_GZS 15
 46: #define DA_LOCAL_INFO_GXM 16
 47: #define DA_LOCAL_INFO_GYM 17
 48: #define DA_LOCAL_INFO_GZM 18

 50: #define XG_RANGE in(DA_LOCAL_INFO_GXS)+1:in(DA_LOCAL_INFO_GXS)+in(DA_LOCAL_INFO_GXM)
 51: #define YG_RANGE in(DA_LOCAL_INFO_GYS)+1:in(DA_LOCAL_INFO_GYS)+in(DA_LOCAL_INFO_GYM)
 52: #define ZG_RANGE in(DA_LOCAL_INFO_GZS)+1:in(DA_LOCAL_INFO_GZS)+in(DA_LOCAL_INFO_GZM)
 53: #define X_RANGE in(DA_LOCAL_INFO_XS)+1:in(DA_LOCAL_INFO_XS)+in(DA_LOCAL_INFO_XM)
 54: #define Y_RANGE in(DA_LOCAL_INFO_YS)+1:in(DA_LOCAL_INFO_YS)+in(DA_LOCAL_INFO_YM)
 55: #define Z_RANGE in(DA_LOCAL_INFO_ZS)+1:in(DA_LOCAL_INFO_ZS)+in(DA_LOCAL_INFO_ZM)

 57: #define DAInterpolationType PetscEnum
 58: #define DAElementType PetscEnum
 59: #endif