Actual source code: petscda.h

  1: !
  2: !  $Id: petscda.h,v 1.20 2001/06/21 21:20:08 bsmith Exp $;
  3: !
  4: !  Include file for Fortran use of the DA (distributed array) package in PETSc
  5: !
  6: #if !defined (__PETSCDA_H)

  9: #define DA PetscFortranAddr
 10: #define DAPeriodicType integer
 11: #define DAStencilType integer
 12: #define DADirection integer
 13: #define DMMG PetscFortranAddr
 14: #define VecPack PetscFortranAddr
 15: #define DM PetscFortranAddr

 17: #define DALocalInfo        integer
 18: !
 19: !   DA_LOCAL_INFO_SIZE is one large than the size incase the DA is larger than an integer (on 64 bit systems)
 20: !
 21: #define DA_LOCAL_INFO_SIZE 22
 22: #define DA_LOCAL_INFO_DIM 1
 23: #define DA_LOCAL_INFO_DOF 2
 24: #define DA_LOCAL_INFO_PT 4
 25: #define DA_LOCAL_INFO_ST 5
 26: #define DA_LOCAL_INFO_MX 6
 27: #define DA_LOCAL_INFO_MY 7
 28: #define DA_LOCAL_INFO_MZ 8
 29: #define DA_LOCAL_INFO_XS 9
 30: #define DA_LOCAL_INFO_YS 10
 31: #define DA_LOCAL_INFO_ZS 11
 32: #define DA_LOCAL_INFO_XM 12
 33: #define DA_LOCAL_INFO_YM 13
 34: #define DA_LOCAL_INFO_ZM 14
 35: #define DA_LOCAL_INFO_GXS 15
 36: #define DA_LOCAL_INFO_GYS 16
 37: #define DA_LOCAL_INFO_GZS 17
 38: #define DA_LOCAL_INFO_GXM 18
 39: #define DA_LOCAL_INFO_GYM 19
 40: #define DA_LOCAL_INFO_GZM 20
 41: #define DA_LOCAL_INFO_DA  21

 43: #define XG_RANGE in(DA_LOCAL_INFO_GXS)+1:in(DA_LOCAL_INFO_GXS)+in(DA_LOCAL_INFO_GXM)
 44: #define YG_RANGE in(DA_LOCAL_INFO_GYS)+1:in(DA_LOCAL_INFO_GYS)+in(DA_LOCAL_INFO_GYM)
 45: #define ZG_RANGE in(DA_LOCAL_INFO_GZS)+1:in(DA_LOCAL_INFO_GZS)+in(DA_LOCAL_INFO_GZM)
 46: #define X_RANGE in(DA_LOCAL_INFO_XS)+1:in(DA_LOCAL_INFO_XS)+in(DA_LOCAL_INFO_XM)
 47: #define Y_RANGE in(DA_LOCAL_INFO_YS)+1:in(DA_LOCAL_INFO_YS)+in(DA_LOCAL_INFO_YM)
 48: #define Z_RANGE in(DA_LOCAL_INFO_ZS)+1:in(DA_LOCAL_INFO_ZS)+in(DA_LOCAL_INFO_ZM)

 50: #define DAInterpolationType integer
 51: #define DA_Q0 0
 52: #define DA_Q1 1

 54: #endif


 57: #if !defined (PETSC_AVOID_DECLARATIONS)
 58: !
 59: !  Types of stencils
 60: !
 61:       integer DA_STENCIL_STAR,DA_STENCIL_BOX

 63:       parameter (DA_STENCIL_STAR = 0,DA_STENCIL_BOX = 1)
 64: !
 65: !  Types of periodicity
 66: !
 67:       integer DA_NONPERIODIC,DA_XPERIODIC,DA_YPERIODIC,DA_XYPERIODIC
 68:       integer DA_XYZPERIODIC,DA_XZPERIODIC,DA_YZPERIODIC,DA_ZPERIODIC

 70:       parameter (DA_NONPERIODIC = 0,DA_XPERIODIC = 1,DA_YPERIODIC = 2)
 71:       parameter (DA_XYPERIODIC = 3,DA_XYZPERIODIC = 4)
 72:       parameter (DA_XZPERIODIC = 5,DA_YZPERIODIC = 6,DA_ZPERIODIC = 7)
 73: !
 74: ! DA Directions
 75: !
 76:       integer DA_X,DA_Y,DA_Z

 78:       parameter (DA_X = 0,DA_Y = 1,DA_Z = 2)
 79: !
 80: !  End of Fortran include file for the DA package in PETSc

 82: #endif