xref: /petsc/src/sys/tutorials/ex8f90.F90 (revision dfd57a172ac9fa6c7b5fe6de6ab5df85cefc2996)
1c4762a1bSJed Brown!
2c4762a1bSJed Brown!   Example of getting an enum value from the options database in Fortran
3c4762a1bSJed Brown
4c4762a1bSJed Brown#include "petsc/finclude/petsc.h"
5c4762a1bSJed Brown      use petsc
6c4762a1bSJed Brown      implicit none
7c4762a1bSJed Brown
8c4762a1bSJed Brown      PetscErrorCode                            :: ierr
9c4762a1bSJed Brown      Character(len=99) list1(6)
10c4762a1bSJed Brown      PetscEnum                                 :: opt=-1
11c4762a1bSJed Brown      PetscBool                                 :: set=PETSC_FALSE
12c4762a1bSJed Brown
13c4762a1bSJed Brown      Call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
14c4762a1bSJed Brown      if (ierr .ne. 0) then
15c4762a1bSJed Brown        print*,'Unable to initialize PETSc'
16c4762a1bSJed Brown        stop
17c4762a1bSJed Brown      endif
18c4762a1bSJed Brown      list1(1) = 'a123'
19c4762a1bSJed Brown      list1(2) = 'b456'
20c4762a1bSJed Brown      list1(3) = 'c789'
21c4762a1bSJed Brown      list1(4) = 'list1'
22c4762a1bSJed Brown      list1(5) = 'prefix_'
23c4762a1bSJed Brown      list1(6) = ''
24c4762a1bSJed Brown
25c4762a1bSJed Brown      write(*,20) list1(1)
26c4762a1bSJed Brown20    format(A99)
27c4762a1bSJed Brown      call PetscOptionsGetEnum(PETSC_NULL_OPTIONS,'joe_','-jeff',list1,opt,set,ierr);CHKERRA(ierr)
28c4762a1bSJed Brown      write(*,*) 'opt is ', opt
29c4762a1bSJed Brown      write(*,*) 'set is ', set
30c4762a1bSJed Brown
31c4762a1bSJed Brown      Call PetscFinalize(ierr)
32c4762a1bSJed Brown      end
33c4762a1bSJed Brown
34c4762a1bSJed Brown!
35c4762a1bSJed Brown!/*TEST
36c4762a1bSJed Brown!
37c4762a1bSJed Brown!   build:
38*dfd57a17SPierre Jolivet!      requires: defined(PETSC_USING_F2003) defined(PETSC_USING_F90FREEFORM)
39c4762a1bSJed Brown!
40c4762a1bSJed Brown!   test:
41c4762a1bSJed Brown!      args: -joe_jeff b456
42c4762a1bSJed Brown!
43c4762a1bSJed Brown!TEST*/
44