Actual source code: ex95f90.F90
1: program ex95f90
2: #include "petsc/finclude/petsc.h"
3: use petsc
4: implicit none
5: #include "exodusII.inc"
7: ! Get the Fortran kind associated with PetscInt and PetscReal so that we can use literal constants.
8: PetscInt :: dummyPetscInt
9: PetscReal :: dummyPetscreal
10: PetscBool :: flg
11: integer,parameter :: kPI = kind(dummyPetscInt)
12: integer,parameter :: kPR = kind(dummyPetscReal)
13: integer :: nNodalVar = 4
14: integer :: nZonalVar = 3
15: integer :: i
17: PetscErrorCode :: ierr
18: type(tDM) :: dm, pdm
19: character(len=PETSC_MAX_PATH_LEN) :: ifilename,ofilename,IOBuffer
20: PetscInt :: order = 1
21: type(tPetscViewer) :: viewer
22: character(len = MXNAME),dimension(4) :: nodalVarName = ["U_x ", &
23: "U_y ", &
24: "Alpha", &
25: "Beta "]
26: character(len = MXNAME),dimension(3) :: zonalVarName = ["Sigma_11", &
27: "Sigma_12", &
28: "Sigma_22"]
29: character(len = MXNAME) :: varName
31: PetscCallA(PetscInitialize(PETSC_NULL_CHARACTER,ierr))
32: if (ierr /= 0) then
33: print*,'Unable to initialize PETSc'
34: stop
35: endif
37: PetscCallA(PetscOptionsBegin(PETSC_COMM_WORLD,PETSC_NULL_CHARACTER,'PetscViewer_ExodusII test','ex95f90',ierr))
38: PetscCallA(PetscOptionsString("-i", "Filename to read", "ex95f90", ifilename, ifilename, flg, ierr));
39: PetscCheckA(flg,PETSC_COMM_WORLD,PETSC_ERR_ARG_OUTOFRANGE,'missing input file name -i ')
40: PetscCallA(PetscOptionsString("-o", "Filename to write", "ex95f90", ofilename, ofilename, flg, ierr));
41: PetscCheckA(flg,PETSC_COMM_WORLD,PETSC_ERR_ARG_OUTOFRANGE,'missing output file name -o