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