# PetscOptionsRangeInt
Gets an integer value within a range of values for a particular option in the database. Logically Collective on the communicator passed in `PetscOptionsBegin()`


## Synopsis
```
#include "petscsys.h"
PetscErrorCode  PetscOptionsRangeInt(const char opt[],const char text[],const char man[],PetscInt currentvalue,PetscInt *value,PetscBool *flg,PetscInt lb,PetscInt ub)
```

## Input Parameters

- ***opt -*** option name
- ***text -*** short string that describes the option
- ***man -*** manual page with additional information on option
- ***currentvalue -*** the current value; caller is responsible for setting this value correctly. Normally this is done with either

```none
PetscOptionsInt(..., obj->value,&obj->value,...) or
```
```none
value = defaultvalue
```
```none
PetscOptionsInt(..., value,&value,&flg);
```
```none
if (flg) {
```
- ***lb -*** the lower bound, provided value must be greater than or equal to this value or an error is generated
- ***ub -*** the upper bound, provided value must be less than or equal to this value or an error is generated



## Output Parameters

- ***value -*** the integer value to return
- ***flg -*** `PETSC_TRUE` if found, else `PETSC_FALSE`



## Notes
If the user does not supply the option at all value is NOT changed. Thus
you should ALWAYS initialize value if you access it without first checking if the set flag is true.

The default/currentvalue passed into this routine does not get transferred to the output value variable automatically.

Must be between a `PetscOptionsBegin()` and a `PetscOptionsEnd()`




## See Also
 `PetscOptionsInt()`, `PetscOptionsGetReal()`, `PetscOptionsHasName()`, `PetscOptionsGetString()`, `PetscOptionsGetInt()`,
`PetscOptionsGetIntArray()`, `PetscOptionsGetRealArray()`, `PetscOptionsGetBool()`, `PetscOptionsBoundedInt()`
`PetscOptionsInt()`, `PetscOptionsString()`, `PetscOptionsReal()`, `PetscOptionsBool()`,
`PetscOptionsName()`, `PetscOptionsBegin()`, `PetscOptionsEnd()`, `PetscOptionsHeadBegin()`,
`PetscOptionsStringArray()`, `PetscOptionsRealArray()`, `PetscOptionsScalar()`,
`PetscOptionsBoolGroupBegin()`, `PetscOptionsBoolGroup()`, `PetscOptionsBoolGroupEnd()`,
`PetscOptionsFList()`, `PetscOptionsEList()`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/sys/objects/aoptions.c.html#PetscOptionsRangeInt">src/sys/objects/aoptions.c</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/tutorials/ex22.c.html">src/dm/tutorials/ex22.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/dt/dualspace/impls/lagrange/tutorials/ex1.c.html">src/dm/dt/dualspace/impls/lagrange/tutorials/ex1.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/dt/dualspace/impls/lagrange/tutorials/ex2.c.html">src/dm/dt/dualspace/impls/lagrange/tutorials/ex2.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/field/tutorials/ex1.c.html">src/dm/field/tutorials/ex1.c.html</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/objects/aoptions.c)


[Index of all Sys routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
