xref: /petsc/src/sys/tutorials/ex8f90.F90 (revision f84028053d197aff3fdf060e86d88b3f1b0f0110)
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
13*f8402805SBarry Smith      PetscCallA(PetscInitialize(PETSC_NULL_CHARACTER,ierr))
14c4762a1bSJed Brown      list1(1) = 'a123'
15c4762a1bSJed Brown      list1(2) = 'b456'
16c4762a1bSJed Brown      list1(3) = 'c789'
17c4762a1bSJed Brown      list1(4) = 'list1'
18c4762a1bSJed Brown      list1(5) = 'prefix_'
19c4762a1bSJed Brown      list1(6) = ''
20c4762a1bSJed Brown
21c4762a1bSJed Brown      write(*,20) list1(1)
22c4762a1bSJed Brown20    format(A99)
23*f8402805SBarry Smith      PetscCallA(PetscOptionsGetEnum(PETSC_NULL_OPTIONS,'joe_','-jeff',list1,opt,set,ierr))
24c4762a1bSJed Brown      write(*,*) 'opt is ', opt
25c4762a1bSJed Brown      write(*,*) 'set is ', set
26c4762a1bSJed Brown
27*f8402805SBarry Smith      PetscCallA(PetscFinalize(ierr))
28c4762a1bSJed Brown      end
29c4762a1bSJed Brown
30c4762a1bSJed Brown!
31c4762a1bSJed Brown!/*TEST
32c4762a1bSJed Brown!
33c4762a1bSJed Brown!   build:
34dfd57a17SPierre Jolivet!      requires: defined(PETSC_USING_F2003) defined(PETSC_USING_F90FREEFORM)
35c4762a1bSJed Brown!
36c4762a1bSJed Brown!   test:
37c4762a1bSJed Brown!      args: -joe_jeff b456
38c4762a1bSJed Brown!
39c4762a1bSJed Brown!TEST*/
40