1program ex60F90 2 3#include <petsc/finclude/petscsys.h> 4 use petsc 5 implicit none 6 7 PetscBool :: flg 8 Character(len=256) :: outputString 9 PetscScalar, dimension(:), pointer :: sopt 10 PetscBool, dimension(:), pointer :: bopt 11 PetscInt :: nopt 12 PetscErrorCode :: ierr 13 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)) 20 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)) 26 27 deallocate (bopt) 28 deallocate (sopt) 29 PetscCallA(PetscFinalize(ierr)) 30end program ex60F90 31 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*/ 40