Actual source code: ex60f90.F90

  1: program ex60F90

  3: #include <petsc/finclude/petscsys.h>
  4:   use petsc
  5:   implicit none

  7:   PetscBool                        :: flg
  8:   Character(len=256)               :: outputString
  9:   PetscScalar, dimension(:), pointer :: sopt
 10:   PetscBool, dimension(:), pointer   :: bopt
 11:   PetscInt                         :: nopt
 12:   PetscErrorCode                   :: ierr

 14:   PetscCallA(PetscInitialize(ierr))
 15:   nopt = 3
 16:   allocate (bopt(nopt))
 17:   PetscCallA(PetscOptionsGetBoolArray(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-bopt', bopt, nopt, flg, ierr))
 18:   Write (outputString, '("bopt: ",3(l7,"  ")," nopt: ",i3," flg ",l7,"\n")') bopt, nopt, flg
 19:   PetscCallA(PetscPrintf(PETSC_COMM_WORLD, outputString, ierr))

 21:   nopt = 3
 22:   allocate (sopt(nopt))
 23:   PetscCallA(PetscOptionsGetScalarArray(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-sopt', sopt, nopt, flg, ierr))
 24:   Write (outputString, '("sopt: ",3(es12.5,"  ")," nopt: ",i3," flg ",l7,"\n")') sopt, nopt, flg
 25:   PetscCallA(PetscPrintf(PETSC_COMM_WORLD, outputString, ierr))

 27:   deallocate (bopt)
 28:   deallocate (sopt)
 29:   PetscCallA(PetscFinalize(ierr))
 30: end program ex60F90

 32: !/*TEST
 33: !
 34: !   test:
 35: !      requires: !complex
 36: !      suffix: 0
 37: !      args: -bopt yes,true,0 -sopt -1,2,3,4
 38: !
 39: !TEST*/