xref: /petsc/src/sys/tutorials/ex17f.F90 (revision c4762a1b19cd2af06abeed90e8f9d34fb975dd94)
1*c4762a1bSJed Brown! Demonstrates PetscGetVersionNumber(): Fortran Example
2*c4762a1bSJed Brown
3*c4762a1bSJed Brown
4*c4762a1bSJed Brownprogram main
5*c4762a1bSJed Brown#include <petsc/finclude/petscsys.h>
6*c4762a1bSJed Brown      use petscsys
7*c4762a1bSJed Brown
8*c4762a1bSJed Brown      implicit none
9*c4762a1bSJed Brown      PetscErrorCode     :: ierr
10*c4762a1bSJed Brown      PetscInt           :: major,minor,subminor
11*c4762a1bSJed Brown      character(len=256) :: outputString
12*c4762a1bSJed Brown
13*c4762a1bSJed Brown      ! Every PETSc routine should begin with the PetscInitialize() routine.
14*c4762a1bSJed Brown
15*c4762a1bSJed Brown      call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
16*c4762a1bSJed Brown      if (ierr /= 0) then
17*c4762a1bSJed Brown        write(6,*)'Unable to initialize PETSc'
18*c4762a1bSJed Brown        stop
19*c4762a1bSJed Brown      endif
20*c4762a1bSJed Brown
21*c4762a1bSJed Brown      call PetscGetVersionNumber(major,minor,subminor,PETSC_NULL_INTEGER,ierr)
22*c4762a1bSJed Brown      CHKERRA(ierr)
23*c4762a1bSJed Brown
24*c4762a1bSJed Brown      if (major /= PETSC_VERSION_MAJOR) then
25*c4762a1bSJed Brown        write(outputString,*)'Library major',major,'does not equal include',PETSC_VERSION_MAJOR
26*c4762a1bSJed Brown        SETERRA(PETSC_COMM_SELF,PETSC_ERR_PLIB,trim(outputString))
27*c4762a1bSJed Brown      endif
28*c4762a1bSJed Brown
29*c4762a1bSJed Brown      if (minor /= PETSC_VERSION_MINOR) then
30*c4762a1bSJed Brown        write(outputString,*)'Library minor',minor,'does not equal include',PETSC_VERSION_MINOR
31*c4762a1bSJed Brown        SETERRA(PETSC_COMM_SELF,PETSC_ERR_PLIB,trim(outputString))
32*c4762a1bSJed Brown      endif
33*c4762a1bSJed Brown
34*c4762a1bSJed Brown      if (subminor /= PETSC_VERSION_SUBMINOR) then
35*c4762a1bSJed Brown        write(outputString,*)'Library subminor',subminor,'does not equal include',PETSC_VERSION_SUBMINOR
36*c4762a1bSJed Brown        SETERRA(PETSC_COMM_SELF,PETSC_ERR_PLIB,trim(outputString))
37*c4762a1bSJed Brown      endif
38*c4762a1bSJed Brown
39*c4762a1bSJed Brown      call PetscFinalize(ierr)
40*c4762a1bSJed Brown
41*c4762a1bSJed Brown
42*c4762a1bSJed Brownend program main
43*c4762a1bSJed Brown
44*c4762a1bSJed Brown!/*TEST
45*c4762a1bSJed Brown!
46*c4762a1bSJed Brown!   test:
47*c4762a1bSJed Brown!
48*c4762a1bSJed Brown!TEST*/
49*c4762a1bSJed Brown
50*c4762a1bSJed Brown
51*c4762a1bSJed Brown
52*c4762a1bSJed Brown
53