xref: /petsc/src/sys/utils/arch.c (revision 667f096b64435359363023126684d9e3b3f4431e)
1e5c89e4eSSatish Balay 
2c6db04a5SJed Brown #include <petscsys.h> /*I  "petscsys.h"  I*/
3e5c89e4eSSatish Balay 
4e5c89e4eSSatish Balay /*@C
5342bf38eSBarry Smith      PetscGetArchType - Returns the $PETSC_ARCH that was used for this configuration of PETSc
6e5c89e4eSSatish Balay 
7e5c89e4eSSatish Balay      Not Collective
8e5c89e4eSSatish Balay 
9e5c89e4eSSatish Balay      Input Parameter:
10e5c89e4eSSatish Balay .    slen - length of string buffer
11e5c89e4eSSatish Balay 
12e5c89e4eSSatish Balay      Output Parameter:
13e5c89e4eSSatish Balay .    str - string area to contain architecture name, should be at least
14e5c89e4eSSatish Balay            10 characters long. Name is truncated if string is not long enough.
15e5c89e4eSSatish Balay 
16e5c89e4eSSatish Balay      Level: developer
17e5c89e4eSSatish Balay 
18811af0c4SBarry Smith    Note:
19811af0c4SBarry Smith     This name is arbitrary and need not correspond to the physical hardware or the software running on the system.
20811af0c4SBarry Smith 
21811af0c4SBarry Smith    Fortran Note:
22*667f096bSBarry Smith    This routine has the format
23*667f096bSBarry Smith .vb
24*667f096bSBarry Smith        character*(10) str
25*667f096bSBarry Smith        call PetscGetArchType(str,ierr)
26*667f096bSBarry Smith .ve
278058be67SSatish Balay 
28c2e3fba1SPatrick Sanan .seealso: `PetscGetUserName()`, `PetscGetHostName()`
29e5c89e4eSSatish Balay @*/
30d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscGetArchType(char str[], size_t slen)
31d71ae5a4SJacob Faibussowitsch {
32e5c89e4eSSatish Balay   PetscFunctionBegin;
3346bc77b6SBarry Smith #if defined(PETSC_ARCH)
349566063dSJacob Faibussowitsch   PetscCall(PetscStrncpy(str, PETSC_ARCH, slen - 1));
35e5c89e4eSSatish Balay #else
3646bc77b6SBarry Smith   #error "$PETSC_ARCH/include/petscconf.h is missing PETSC_ARCH"
37e5c89e4eSSatish Balay #endif
383ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
39e5c89e4eSSatish Balay }
40