1#include <petsc/finclude/petscsys.h> 2program ex60F90 3 use petsc 4 implicit none 5 6 PetscBool :: flg 7 character(len=256) :: outputString 8 PetscScalar, dimension(:), pointer :: sopt 9 PetscBool, dimension(:), pointer :: bopt 10 PetscInt :: nopt 11 PetscErrorCode :: ierr 12 13 PetscCallA(PetscInitialize(ierr)) 14 nopt = 3 15 allocate (bopt(nopt)) 16 PetscCallA(PetscOptionsGetBoolArray(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-bopt', bopt, nopt, flg, ierr)) 17 write (outputString, '("bopt: ",3(l7," ")," nopt: ",i3," flg ",l7,"\n")') bopt, nopt, flg 18 PetscCallA(PetscPrintf(PETSC_COMM_WORLD, outputString, ierr)) 19 20 nopt = 3 21 allocate (sopt(nopt)) 22 PetscCallA(PetscOptionsGetScalarArray(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-sopt', sopt, nopt, flg, ierr)) 23 write (outputString, '("sopt: ",3(es12.5," ")," nopt: ",i3," flg ",l7,"\n")') sopt, nopt, flg 24 PetscCallA(PetscPrintf(PETSC_COMM_WORLD, outputString, ierr)) 25 26 deallocate (bopt) 27 deallocate (sopt) 28 PetscCallA(PetscFinalize(ierr)) 29end program ex60F90 30 31!/*TEST 32! 33! test: 34! requires: !complex 35! suffix: 0 36! args: -bopt yes,true,0 -sopt -1,2,3,4 37! 38!TEST*/ 39