!
!
! Base include file for Fortran use of the PETSc package.
!
#include "petscconf.h"
#include "petscversion.h"
#if !defined(PETSC_AVOID_MPIF_H) && !defined(PETSC_AVOID_DECLARATIONS)
#include "mpif.h"
#endif
#include "finclude/petscdef.h"
#if !defined (PETSC_AVOID_DECLARATIONS)
! ------------------------------------------------------------------------
! Non Common block Stuff declared first
!
! Flags
!
PetscEnum PETSC_TRUE,PETSC_FALSE
PetscEnum PETSC_YES,PETSC_NO
parameter (PETSC_TRUE = 1,PETSC_FALSE = 0)
parameter (PETSC_YES=1, PETSC_NO=0)
PetscInt PETSC_DECIDE,PETSC_DETERMINE
parameter (PETSC_DECIDE=-1,PETSC_DETERMINE=-1)
PetscInt PETSC_DEFAULT_INTEGER
parameter (PETSC_DEFAULT_INTEGER = -2)
PetscFortranDouble PETSC_DEFAULT_DOUBLE_PRECISION
parameter (PETSC_DEFAULT_DOUBLE_PRECISION=-2.0d0)
PetscEnum PETSC_FP_TRAP_OFF,PETSC_FP_TRAP_ON
parameter (PETSC_FP_TRAP_OFF = 0,PETSC_FP_TRAP_ON = 1)
!
! Default PetscViewers.
!
PetscFortranAddr PETSC_VIEWER_DRAW_WORLD
PetscFortranAddr PETSC_VIEWER_DRAW_SELF
PetscFortranAddr PETSC_VIEWER_SOCKET_WORLD
PetscFortranAddr PETSC_VIEWER_SOCKET_SELF
PetscFortranAddr PETSC_VIEWER_STDOUT_WORLD
PetscFortranAddr PETSC_VIEWER_STDOUT_SELF
PetscFortranAddr PETSC_VIEWER_STDERR_WORLD
PetscFortranAddr PETSC_VIEWER_STDERR_SELF
PetscFortranAddr PETSC_VIEWER_BINARY_WORLD
PetscFortranAddr PETSC_VIEWER_BINARY_SELF
PetscFortranAddr PETSC_VIEWER_MATLAB_WORLD
PetscFortranAddr PETSC_VIEWER_MATLAB_SELF
!
! The numbers used below should match those in
! src/fortran/custom/zpetsc.h
!
parameter (PETSC_VIEWER_DRAW_WORLD = -4)
parameter (PETSC_VIEWER_DRAW_SELF = -5)
parameter (PETSC_VIEWER_SOCKET_WORLD = -6)
parameter (PETSC_VIEWER_SOCKET_SELF = -7)
parameter (PETSC_VIEWER_STDOUT_WORLD = -8)
parameter (PETSC_VIEWER_STDOUT_SELF = -9)
parameter (PETSC_VIEWER_STDERR_WORLD = -10)
parameter (PETSC_VIEWER_STDERR_SELF = -11)
parameter (PETSC_VIEWER_BINARY_WORLD = -12)
parameter (PETSC_VIEWER_BINARY_SELF = -13)
parameter (PETSC_VIEWER_MATLAB_WORLD = -14)
parameter (PETSC_VIEWER_MATLAB_SELF = -15)
!
! PETSc DataTypes
!
PetscEnum PETSC_INT,PETSC_DOUBLE,PETSC_COMPLEX
PetscEnum PETSC_LONG,PETSC_SHORT,PETSC_FLOAT
PetscEnum PETSC_CHAR,PETSC_LOGICAL,PETSC_ENUM
PetscEnum PETSC_TRUTH,PETSC_LONG_DOUBLE
#if defined(PETSC_USE_SINGLE)
#define PETSC_REAL PETSC_FLOAT
#elif defined(PETSC_USE_LONG_DOUBLE)
#define PETSC_REAL PETSC_LONG_DOUBLE
#elif defined(PETSC_USE_INT)
#define PETSC_REAL PETSC_INT
#else
#define PETSC_REAL PETSC_DOUBLE
#endif
#define PETSC_FORTRANADDR PETSC_LONG
parameter (PETSC_INT=0,PETSC_DOUBLE=1,PETSC_COMPLEX=2)
parameter (PETSC_LONG=3,PETSC_SHORT=4,PETSC_FLOAT=5)
parameter (PETSC_CHAR=6,PETSC_LOGICAL=7,PETSC_ENUM=8)
parameter (PETSC_TRUTH=9,PETSC_LONG_DOUBLE=10)
!
! ------------------------------------------------------------------------
! PETSc mathematics include file. Defines certain basic mathematical
! constants and functions for working with single and double precision
! floating point numbers as well as complex and integers.
!
! Representation of complex i
!
PetscFortranComplex PETSC_i
parameter (PETSC_i = (0.0d0,1.0d0))
!
! Basic constants
!
PetscFortranDouble PETSC_PI
PetscFortranDouble PETSC_DEGREES_TO_RADIANS
PetscFortranDouble PETSC_MAX
PetscFortranDouble PETSC_MIN
parameter (PETSC_PI = 3.14159265358979323846264d0)
parameter (PETSC_DEGREES_TO_RADIANS = 0.01745329251994d0)
parameter (PETSC_MAX = 1.d300,PETSC_MIN = -1.d300)
PetscFortranDouble PETSC_MACHINE_EPSILON
PetscFortranDouble PETSC_SQRT_MACHINE_EPSILON
PetscFortranDouble PETSC_SMALL
#if defined(PETSC_USE_SINGLE)
parameter (PETSC_MACHINE_EPSILON = 1.e-7)
parameter (PETSC_SQRT_MACHINE_EPSILON = 3.e-4)
parameter (PETSC_SMALL = 1.e-5)
#else
parameter (PETSC_MACHINE_EPSILON = 1.d-14)
parameter (PETSC_SQRT_MACHINE_EPSILON = 1.d-7)
parameter (PETSC_SMALL = 1.d-10)
#endif
!
! ----------------------------------------------------------------------------
! BEGIN COMMON-BLOCK VARIABLES
!
!
! PETSc world communicator
!
MPI_Comm PETSC_COMM_WORLD,PETSC_COMM_SELF
!
! Fortran Null
!
PetscChar(80) PETSC_NULL_CHARACTER
PetscInt PETSC_NULL_INTEGER
PetscFortranDouble PETSC_NULL_DOUBLE
PetscInt PETSC_NULL
PetscObject PETSC_NULL_OBJECT
!
! A PETSC_NULL_FUNCTION pointer
!
external PETSC_NULL_FUNCTION
PetscScalar PETSC_NULL_SCALAR
PetscReal PETSC_NULL_REAL
!
! Common Block to store some of the PETSc constants.
! which can be set - only at runtime.
!
!
! A string should be in a different common block
!
common /petscfortran1/ PETSC_NULL_CHARACTER
common /petscfortran2/ PETSC_NULL_INTEGER
common /petscfortran3/ PETSC_NULL
common /petscfortran4/ PETSC_NULL_SCALAR
common /petscfortran5/ PETSC_NULL_DOUBLE
common /petscfortran6/ PETSC_NULL_REAL
common /petscfortran7/ PETSC_COMM_WORLD,PETSC_COMM_SELF
common /petscfortran8/ PETSC_NULL_OBJECT
!
! Possible arguments to PetscPushErrorHandler()
!
external PETSCTRACEBACKERRORHANDLER
external PETSCABORTERRORHANDLER
external PETSCEMACSCLIENTERRORHANDLER
external PETSCATTACHDEBUGGERERRORHANDLER
external PETSCIGNOREERRORHANDLER
! END COMMON-BLOCK VARIABLES
! ----------------------------------------------------------------------------
#endif
syntax highlighted by Code2HTML, v. 0.9.1