Actual source code: petsc.h
1: !
2: ! $Id: petsc.h,v 1.100 2001/08/30 19:57:08 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)
97: PetscFortranDouble PETSC_MACHINE_EPSILON
98: PetscFortranDouble PETSC_SQRT_MACHINE_EPSILON
99: PetscFortranDouble PETSC_SMALL
101: #if defined(PETSC_USE_SINGLE)
102: parameter (PETSC_MACHINE_EPSILON = 1.e-7)
103: parameter (PETSC_SQRT_MACHINE_EPSILON = 3.e-4)
104: parameter (PETSC_SMALL = 1.e-5)
105: #else
106: parameter (PETSC_MACHINE_EPSILON = 1.d-14)
107: parameter (PETSC_SQRT_MACHINE_EPSILON = 1.d-7)
108: parameter (PETSC_SMALL = 1.d-10)
109: #endif
110: !
111: ! ----------------------------------------------------------------------------
112: ! BEGIN COMMON-BLOCK VARIABLES
113: !
114: !
115: ! PETSc world communicator
116: !
117: MPI_Comm PETSC_COMM_WORLD,PETSC_COMM_SELF
118: !
119: ! Fortran Null
120: !
121: PetscChar(80) PETSC_NULL_CHARACTER
122: PetscFortranInt PETSC_NULL_INTEGER
123: PetscFortranDouble PETSC_NULL_DOUBLE
124: PetscFortranInt PETSC_NULL
125: !
126: ! A PETSC_NULL_FUNCTION pointer
127: !
128: external PETSC_NULL_FUNCTION
129: PetscScalar PETSC_NULL_SCALAR
130: PetscReal PETSC_NULL_REAL
131: !
132: ! Common Block to store some of the PETSc constants.
133: ! which can be set - only at runtime.
134: !
135: !
136: ! A string should be in a different common block
137: !
138: common /petscfortran1/ PETSC_NULL_CHARACTER
139: common /petscfortran2/ PETSC_NULL_INTEGER
140: common /petscfortran3/ PETSC_NULL
141: common /petscfortran4/ PETSC_NULL_SCALAR
142: common /petscfortran5/ PETSC_NULL_DOUBLE
143: common /petscfortran6/ PETSC_NULL_REAL
144: common /petscfortran7/ PETSC_COMM_WORLD,PETSC_COMM_SELF
146: ! END COMMON-BLOCK VARIABLES
147: ! ----------------------------------------------------------------------------
149: #endif