Actual source code: petsc.h

  1: !
  2: !  $Id: petsc.h,v 1.96 2001/04/10 22:37:56 balay Exp $;
  3: !
  4: !  Base include file for Fortran use of the PETSc package.
  5: !
  6: #include "petscconf.h"

  8: #if !defined(PETSC_AVOID_MPIF_H) && !defined(PETSC_AVOID_DECLARATIONS)
  9: #include "mpif.h"
 10: #endif

 12: #include "finclude/petscdef.h"

 14: #if !defined (PETSC_AVOID_DECLARATIONS)
 15: ! ------------------------------------------------------------------------
 16: !     Non Common block Stuff declared first
 17: !
 18: !     Flags
 19: !
 20:       integer   PETSC_TRUE,PETSC_FALSE
 21:       integer   PETSC_YES,PETSC_NO
 22:       parameter (PETSC_TRUE = 1,PETSC_FALSE = 0)
 23:       parameter (PETSC_YES=1, PETSC_NO=0)

 25:       integer   PETSC_DECIDE,PETSC_DETERMINE
 26:       parameter (PETSC_DECIDE=-1,PETSC_DETERMINE=-1)

 28:       integer   PETSC_DEFAULT_INTEGER
 29:       parameter (PETSC_DEFAULT_INTEGER = -2)

 31:       PetscFortranDouble PETSC_DEFAULT_DOUBLE_PRECISION
 32:       parameter (PETSC_DEFAULT_DOUBLE_PRECISION=-2.0d0)

 34:       integer   PETSC_FP_TRAP_OFF,PETSC_FP_TRAP_ON
 35:       parameter (PETSC_FP_TRAP_OFF = 0,PETSC_FP_TRAP_ON = 1)



 39: !
 40: !     Default PetscViewers.
 41: !
 42:       PetscFortranAddr PETSC_VIEWER_DRAW_WORLD
 43:       PetscFortranAddr PETSC_VIEWER_DRAW_SELF
 44:       PetscFortranAddr PETSC_VIEWER_SOCKET_WORLD
 45:       PetscFortranAddr PETSC_VIEWER_SOCKET_SELF
 46:       PetscFortranAddr PETSC_VIEWER_STDOUT_WORLD
 47:       PetscFortranAddr PETSC_VIEWER_STDOUT_SELF
 48:       PetscFortranAddr PETSC_VIEWER_STDERR_WORLD
 49:       PetscFortranAddr PETSC_VIEWER_STDERR_SELF
 50:       PetscFortranAddr PETSC_VIEWER_BINARY_WORLD
 51:       PetscFortranAddr PETSC_VIEWER_BINARY_SELF

 53: !
 54: !     The numbers used below should match those in
 55: !     src/fortran/custom/zpetsc.h
 56: !
 57:       parameter (PETSC_VIEWER_DRAW_WORLD   = -4)
 58:       parameter (PETSC_VIEWER_DRAW_SELF    = -5)
 59:       parameter (PETSC_VIEWER_SOCKET_WORLD = -6)
 60:       parameter (PETSC_VIEWER_SOCKET_SELF  = -7)
 61:       parameter (PETSC_VIEWER_STDOUT_WORLD = -8)
 62:       parameter (PETSC_VIEWER_STDOUT_SELF  = -9)
 63:       parameter (PETSC_VIEWER_STDERR_WORLD = -10)
 64:       parameter (PETSC_VIEWER_STDERR_SELF  = -11)
 65:       parameter (PETSC_VIEWER_BINARY_WORLD = -12)
 66:       parameter (PETSC_VIEWER_BINARY_SELF  = -13)
 67: !
 68: !     PETSc DataTypes
 69: !
 70:       integer PETSC_INT,PETSC_DOUBLE,PETSC_COMPLEX
 71:       integer PETSC_LONG,PETSC_SHORT,PETSC_FLOAT
 72:       integer PETSC_CHAR,PETSC_LOGICAL

 74:       parameter (PETSC_INT=0,PETSC_DOUBLE=1,PETSC_COMPLEX=2)
 75:       parameter (PETSC_LONG=3,PETSC_SHORT=4,PETSC_FLOAT=5)
 76:       parameter (PETSC_CHAR=6,PETSC_LOGICAL=7)
 77: !
 78: ! ------------------------------------------------------------------------
 79: !     PETSc mathematics include file. Defines certain basic mathematical
 80: !    constants and functions for working with single and double precision
 81: !    floating point numbers as well as complex and integers.
 82: !
 83: !     Representation of complex i
 84: !
 85:       PetscFortranComplex PETSC_i
 86:       parameter (PETSC_i = (0.0d0,1.0d0))
 87: !
 88: !     Basic constants
 89: !
 90:       PetscFortranDouble PETSC_PI,PETSC_DEGREES_TO_RADIANS
 91:       PetscFortranDouble PETSC_MAX,PETSC_MIN

 93:       parameter (PETSC_PI = 3.14159265358979323846264d0)
 94:       parameter (PETSC_DEGREES_TO_RADIANS = 0.01745329251994d0)
 95:       parameter (PETSC_MAX = 1.d300,PETSC_MIN = -1.d300)
 96: !
 97: ! ----------------------------------------------------------------------------
 98: !    BEGIN COMMON-BLOCK VARIABLES
 99: !
100: !
101: !     PETSc world communicator
102: !
103:       MPI_Comm PETSC_COMM_WORLD,PETSC_COMM_SELF
104: !
105: !     Fortran Null
106: !
107:       character*(80)      PETSC_NULL_CHARACTER
108:       PetscFortranInt     PETSC_NULL_INTEGER
109:       PetscFortranDouble  PETSC_NULL_DOUBLE
110: !
111: !      A PETSC_NULL_FUNCTION pointer
112: !
113:       external PETSC_NULL_FUNCTION
114:       Scalar   PETSC_NULL_SCALAR
115: !
116: !     Common Block to store some of the PETSc constants.
117: !     which can be set - only at runtime.
118: !
119: !
120: !     A string should be in a different common block
121: !
122:       common /petscfortran1/ PETSC_NULL_CHARACTER
123:       common /petscfortran2/ PETSC_NULL_INTEGER
124:       common /petscfortran3/ PETSC_NULL_SCALAR
125:       common /petscfortran4/ PETSC_NULL_DOUBLE
126:       common /petscfortran5/ PETSC_COMM_WORLD,PETSC_COMM_SELF

128: !    END COMMON-BLOCK VARIABLES
129: ! ----------------------------------------------------------------------------

131: #endif