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