xref: /petsc/src/sys/utils/arch.c (revision 6d8694c4fbab79f9439f1ad13c0386ba7ee1ca4b)
1c6db04a5SJed Brown #include <petscsys.h> /*I  "petscsys.h"  I*/
2e5c89e4eSSatish Balay 
3e5c89e4eSSatish Balay /*@C
4342bf38eSBarry Smith   PetscGetArchType - Returns the $PETSC_ARCH that was used for this configuration of PETSc
5e5c89e4eSSatish Balay 
6e5c89e4eSSatish Balay   Not Collective
7e5c89e4eSSatish Balay 
8e5c89e4eSSatish Balay   Input Parameter:
9e5c89e4eSSatish Balay . slen - length of string buffer
10e5c89e4eSSatish Balay 
11e5c89e4eSSatish Balay   Output Parameter:
12*ce78bad3SBarry Smith . str - string area to contain architecture name, should be at least 10 characters long. Name is truncated if string is not long enough.
13e5c89e4eSSatish Balay 
14e5c89e4eSSatish Balay   Level: developer
15e5c89e4eSSatish Balay 
16811af0c4SBarry Smith   Note:
17811af0c4SBarry Smith   This name is arbitrary and need not correspond to the physical hardware or the software running on the system.
18811af0c4SBarry Smith 
19*ce78bad3SBarry Smith   Fortran Note:
20667f096bSBarry Smith .vb
21*ce78bad3SBarry Smith   character*(128) str
22667f096bSBarry Smith   call PetscGetArchType(str,ierr)
23667f096bSBarry Smith .ve
248058be67SSatish Balay 
25c2e3fba1SPatrick Sanan .seealso: `PetscGetUserName()`, `PetscGetHostName()`
26e5c89e4eSSatish Balay @*/
PetscGetArchType(char str[],size_t slen)27d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscGetArchType(char str[], size_t slen)
28d71ae5a4SJacob Faibussowitsch {
29e5c89e4eSSatish Balay   PetscFunctionBegin;
3046bc77b6SBarry Smith #if defined(PETSC_ARCH)
319566063dSJacob Faibussowitsch   PetscCall(PetscStrncpy(str, PETSC_ARCH, slen - 1));
32e5c89e4eSSatish Balay #else
3346bc77b6SBarry Smith   #error "$PETSC_ARCH/include/petscconf.h is missing PETSC_ARCH"
34e5c89e4eSSatish Balay #endif
353ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
36e5c89e4eSSatish Balay }
37