Actual source code: ex86f.F90
1: !
2: ! Description: Demonstrates error handling with incorrect Fortran objects
3: !
4: ! -----------------------------------------------------------------------
5: #include <petsc/finclude/petscksp.h>
6: program main
7: use petscksp
8: implicit none
9: PetscErrorCode ierr
10: PetscInt test
11: KSP ksp
13: ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
14: ! Beginning of program
15: ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
17: PetscCallA(PetscInitialize(PETSC_NULL_CHARACTER, ierr))
19: test = 1
20: PetscCallA(PetscOptionsGetInt(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-test', test, PETSC_NULL_BOOL, ierr))
21: if (test == 1) then
22: PetscCallA(KSPSolve(PETSC_NULL_KSP, PETSC_NULL_VEC, PETSC_NULL_VEC, ierr))
23: else if (test == 2) then
24: PetscCallA(KSPCreate(PETSC_COMM_WORLD, PETSC_NULL_KSP, ierr))
25: else if (test == 3) then
26: PetscCallA(KSPCreate(PETSC_COMM_WORLD, ksp, ierr))
27: PetscCallA(KSPCreate(PETSC_COMM_WORLD, ksp, ierr))
28: else if (test == 4) then
29: PetscCallA(KSPDestroy(PETSC_NULL_KSP, ierr))
30: end if
32: ! These should error but do not when ksp has not been created
33: ! PetscCallA(KSPSolve(ksp,PETSC_NULL_VEC,PETSC_NULL_VEC,ierr))
34: ! PetscCallA(KSPDestroy(ksp,ierr))
36: PetscCallA(PetscFinalize(ierr))
37: end
39: !/*TEST
40: !
41: ! test:
42: ! requires: defined(PETSC_USE_DEBUG) !defined(PETSCTEST_VALGRIND) defined(PETSC_HAVE_FORTRAN_FREE_LINE_LENGTH_NONE) !defined(PETSC_HAVE_SANITIZER)
43: ! args: -petsc_ci_portable_error_output -error_output_stdout -test 1
44: ! filter: grep -E "(PETSC ERROR)" | sed s"?KSPCREATE?kspcreate?" | sed s"?kspcreate_?kspcreate?"
45: !
46: ! test:
47: ! suffix: 2
48: ! requires: !defined(PETSCTEST_VALGRIND) defined(PETSC_HAVE_FORTRAN_FREE_LINE_LENGTH_NONE) !defined(PETSC_HAVE_SANITIZER)
49: ! args: -petsc_ci_portable_error_output -error_output_stdout -test 2
50: ! filter: grep -E "(PETSC ERROR)" | sed s"?KSPCREATE?kspcreate?" | sed s"?kspcreate_?kspcreate?"
51: !
52: ! test:
53: ! suffix: 3
54: ! requires: !defined(PETSCTEST_VALGRIND) defined(PETSC_HAVE_FORTRAN_FREE_LINE_LENGTH_NONE) !defined(PETSC_HAVE_SANITIZER)
55: ! args: -petsc_ci_portable_error_output -error_output_stdout -test 3
56: ! filter: grep -E "(PETSC ERROR)" | sed s"?KSPCREATE?kspcreate?" | sed s"?kspcreate_?kspcreate?"
57: !
58: !
59: ! test:
60: ! suffix: 4
61: ! requires: !defined(PETSCTEST_VALGRIND) defined(PETSC_HAVE_FORTRAN_FREE_LINE_LENGTH_NONE) !defined(PETSC_HAVE_SANITIZER)
62: ! args: -petsc_ci_portable_error_output -error_output_stdout -test 4
63: ! filter: grep -E "(PETSC ERROR)" | sed s"?KSPDESTROY?kspdestroy?" | sed s"?kspdestroy_?kspdestroy?"
64: ! output_file: output/empty.out
65: !
66: !TEST*/