1: #include <petscsys.h> 2: /*@C
3: PetscGetVersion - Gets the PETSc version information in a string.
5: Input Parameter:
6: . len - length of the string
8: Output Parameter:
9: . version - version string
11: Level: developer
13: Fortran Note:
14: This routine is not supported in Fortran.
16: For doing runtime checking off supported versions we recommend using PetscGetVersionNumber() instead of this routine.
18: Developer Note: The version information is also listed in
19: $ src/docs/tex/manual/intro.tex,
20: $ src/docs/tex/manual/manual.tex.
21: $ src/docs/website/index.html.
23: .seealso: PetscGetProgramName(), PetscGetVersionNumber()
25: @*/
27: PetscErrorCodePetscGetVersion(char version[], size_t len) 28: {
32: #if (PETSC_VERSION_RELEASE == 1)
33: PetscSNPrintf(version,len,"Petsc Release Version %d.%d.%d, %s ",PETSC_VERSION_MAJOR,PETSC_VERSION_MINOR, PETSC_VERSION_SUBMINOR,PETSC_VERSION_DATE);
34: #else
35: PetscSNPrintf(version,len,"Petsc Development GIT revision: %s GIT Date: %s",PETSC_VERSION_GIT, PETSC_VERSION_DATE_GIT);
36: #endif
37: return(0);
38: }
40: /*@C
41: PetscGetVersionNumber - Gets the PETSc version information from the library
43: Not collective
45: Output Parameter:
46: + major - the major version (optional, pass NULL if not requested)
47: . minor - the minor version (optional, pass NULL if not requested)
48: . subminor - the subminor version (patch number) (optional, pass NULL if not requested)
49: - release - indicates the library is from a release, not random git repository (optional, pass NULL if not requested)
51: Level: developer
53: Notes:
54: The C macros PETSC_VERSION_MAJOR, PETSC_VERSION_MINOR, PETSC_VERSION_SUBMINOR, PETSC_VERSION_RELEASE provide the information at
55: compile time. This can be used to confirm that the shared library being loaded at runtime has the appropriate version updates.
57: This function can be called before PetscInitialize()
59: .seealso: PetscGetProgramName(), PetscGetVersion(), PetscInitialize()
61: @*/
62: PetscErrorCodePetscGetVersionNumber(PetscInt *major, PetscInt *minor, PetscInt *subminor,PetscInt *release) 63: {
64: if (major) *major = PETSC_VERSION_MAJOR;
65: if (minor) *minor = PETSC_VERSION_MINOR;
66: if (subminor) *subminor = PETSC_VERSION_SUBMINOR;
67: if (release) *release = PETSC_VERSION_RELEASE;
68: return 0;
69: }