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*/