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