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