1 2 static char help[] = "Tests retrieving unused PETSc options.\n\n"; 3 4 #include <petscsys.h> 5 6 int main(int argc, char **argv) { 7 PetscInt i, N, M; 8 char **names, **values; 9 PetscBool set; 10 11 PetscFunctionBeginUser; 12 PetscCall(PetscInitialize(&argc, &argv, (char *)0, help)); 13 14 PetscCall(PetscOptionsGetInt(NULL, NULL, "-get_an_integer", &M, &set)); 15 if (set) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Option used: name:-get_an_integer value: %" PetscInt_FMT "\n", M)); 16 PetscCall(PetscOptionsLeftGet(NULL, &N, &names, &values)); 17 for (i = 0; i < N; i++) { 18 if (values[i]) { 19 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Option left: name:-%s value: %s\n", names[i], values[i])); 20 } else { 21 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Option left: name:-%s (no value)\n", names[i])); 22 } 23 } 24 PetscCall(PetscOptionsLeftRestore(NULL, &N, &names, &values)); 25 26 PetscCall(PetscFinalize()); 27 return 0; 28 } 29 30 /*TEST 31 32 test: 33 suffix: debug 34 requires: defined(PETSC_USE_DEBUG) 35 args: -unused_petsc_option_1 -unused_petsc_option_2 -get_an_integer 10 -options_left no 36 37 test: 38 suffix: opt 39 requires: !defined(PETSC_USE_DEBUG) 40 args: -unused_petsc_option_1 -unused_petsc_option_2 -get_an_integer 10 -options_left no 41 42 TEST*/ 43