127710113SBarry Smith #include <petscsys.h> 227710113SBarry Smith /*@C 327710113SBarry Smith PetscGetVersion - Gets the PETSc version information in a string. 427710113SBarry Smith 527710113SBarry Smith Input Parameter: 627710113SBarry Smith . len - length of the string 727710113SBarry Smith 827710113SBarry Smith Output Parameter: 927710113SBarry Smith . version - version string 1027710113SBarry Smith 1127710113SBarry Smith Level: developer 1227710113SBarry Smith 1327710113SBarry Smith Fortran Note: 1427710113SBarry Smith This routine is not supported in Fortran. 1527710113SBarry Smith 168cf9f3d7SBarry Smith For doing runtime checking off supported versions we recommend using PetscGetVersionNumber() instead of this routine. 178cf9f3d7SBarry Smith 1827710113SBarry Smith Developer Note: The version information is also listed in 1927710113SBarry Smith $ src/docs/website/index.html. 2027710113SBarry Smith 215f309d01SBarry Smith .seealso: PetscGetProgramName(), PetscGetVersionNumber() 2227710113SBarry Smith 2327710113SBarry Smith @*/ 2427710113SBarry Smith 2527710113SBarry Smith PetscErrorCode PetscGetVersion(char version[], size_t len) 2627710113SBarry Smith { 2727710113SBarry Smith PetscErrorCode ierr; 288cf9f3d7SBarry Smith 298cf9f3d7SBarry Smith PetscFunctionBegin; 3027710113SBarry Smith #if (PETSC_VERSION_RELEASE == 1) 31e4643290SSatish Balay ierr = PetscSNPrintf(version,len,"Petsc Release Version %d.%d.%d, %s ",PETSC_VERSION_MAJOR,PETSC_VERSION_MINOR, PETSC_VERSION_SUBMINOR,PETSC_VERSION_DATE);CHKERRQ(ierr); 3227710113SBarry Smith #else 337078edc9SSatish Balay ierr = PetscSNPrintf(version,len,"Petsc Development GIT revision: %s GIT Date: %s",PETSC_VERSION_GIT, PETSC_VERSION_DATE_GIT);CHKERRQ(ierr); 3427710113SBarry Smith #endif 3527710113SBarry Smith PetscFunctionReturn(0); 3627710113SBarry Smith } 3727710113SBarry Smith 385f309d01SBarry Smith /*@C 395f309d01SBarry Smith PetscGetVersionNumber - Gets the PETSc version information from the library 405f309d01SBarry Smith 415f309d01SBarry Smith Not collective 425f309d01SBarry Smith 43*d8d19677SJose E. Roman Output Parameters: 445f309d01SBarry Smith + major - the major version (optional, pass NULL if not requested) 455f309d01SBarry Smith . minor - the minor version (optional, pass NULL if not requested) 465f309d01SBarry Smith . subminor - the subminor version (patch number) (optional, pass NULL if not requested) 475f309d01SBarry Smith - release - indicates the library is from a release, not random git repository (optional, pass NULL if not requested) 485f309d01SBarry Smith 495f309d01SBarry Smith Level: developer 505f309d01SBarry Smith 5195452b02SPatrick Sanan Notes: 5295452b02SPatrick Sanan The C macros PETSC_VERSION_MAJOR, PETSC_VERSION_MINOR, PETSC_VERSION_SUBMINOR, PETSC_VERSION_RELEASE provide the information at 535f309d01SBarry Smith compile time. This can be used to confirm that the shared library being loaded at runtime has the appropriate version updates. 545f309d01SBarry Smith 558cf9f3d7SBarry Smith This function can be called before PetscInitialize() 568cf9f3d7SBarry Smith 578cf9f3d7SBarry Smith .seealso: PetscGetProgramName(), PetscGetVersion(), PetscInitialize() 585f309d01SBarry Smith 595f309d01SBarry Smith @*/ 605f309d01SBarry Smith PetscErrorCode PetscGetVersionNumber(PetscInt *major, PetscInt *minor, PetscInt *subminor,PetscInt *release) 615f309d01SBarry Smith { 625f309d01SBarry Smith if (major) *major = PETSC_VERSION_MAJOR; 635f309d01SBarry Smith if (minor) *minor = PETSC_VERSION_MINOR; 645f309d01SBarry Smith if (subminor) *subminor = PETSC_VERSION_SUBMINOR; 655f309d01SBarry Smith if (release) *release = PETSC_VERSION_RELEASE; 668cf9f3d7SBarry Smith return 0; 675f309d01SBarry Smith } 68