Actual source code: ex2f.h
petsc-3.4.2 2013-07-02
1: ! This file contains include statements and a user-defined
2: ! common block for application-specific data. This file is
3: ! included in each routine within the program ex2f.
4: !
5: ! The following include statements are generally used in TS Fortran
6: ! programs:
7: ! petscsys.h - base PETSc routines
8: ! petscvec.h - vectors
9: ! petscmat.h - matrices
10: ! petscksp.h - Krylov subspace methods
11: ! petscpc.h - preconditioners
12: ! petscsnes.h - SNES interface
13: ! petscts.h - TS interface
14: ! petscviewer.h - viewers
15: ! petscdraw.h - drawing
16: ! In addition, we need the following for use of distributed arrays
17: ! petscdmda.h - distributed arrays (DMDAs)
18: ! Other include statements may be needed if using additional PETSc
19: ! routines in a Fortran program, e.g.,
20: ! petscis.h - index sets
22: #include <finclude/petscsys.h>
23: #include <finclude/petscvec.h>
24: #include <finclude/petscdmda.h>
25: #include <finclude/petscmat.h>
26: #include <finclude/petscksp.h>
27: #include <finclude/petscpc.h>
28: #include <finclude/petscsnes.h>
29: #include <finclude/petscts.h>
30: #include <finclude/petscviewer.h>
31: #include <finclude/petscdraw.h>
33: ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
34: !
35: ! The application context to contain data needed by the
36: ! application-provided call-back routines, RHSFunction(),
37: ! RHSJacobian(), Monitor(). In this example the application context
38: ! is a Fortran common block, /appctx/. Note that we can store
39: ! (pointers to) PETSc objects within this common block.
40: ! appctx: M - total number of grid points
41: ! da - distributed array
42: ! localwork - local work vector (including ghost points)
43: ! solution - solution vector
44: ! comm - communicator
45: ! rank - processor rank within communicator
46: ! size - number of processors
47: ! debug - flag (1 indicates debugging printouts)
48: !
49: ! Store other misc problem parameters in common block /params/
50: ! h - mesh width h = 1/(M-1)
51: !
52: ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
53: ! Common block data:
54: DM da
55: Vec localwork,solution
56: Vec u_local
57: PetscInt M
58: PetscBool debug
59: PetscMPIInt size,rank
60: PetscReal zero_d0,one_d0
61: PetscReal two_d0,four_d0
62: MPI_Comm comm
63: PetscReal h
65: common /params/ zero_d0,one_d0,two_d0,four_d0,h
66: common /appctx/ localwork,solution,da,u_local
67: common /appctx/ comm,rank,size,debug,M
69: ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -