**Syntax**

` >>>> PENALTY: penaltypar(1) penaltypar(2)`

**Parent Command**

all third-level commands in block ` > OBSERVATION
`

**Subcommand**

` -`

**Description**

This command reads parameters of the penalty function used to impose non-equality constraints on model output. The lower and upper bounds of the model output (*z _{bound}*) are provided through command

`>>>> CONSTRAINT`. Model outputs beyond that range (i.e., if

*z*(

**p**) <

*z*or

_{bound-}*z*(

**p**) >

*z*) are penalized by a power law function:

_{bound+}*z*â€™(**p**,*t*) = *z*(**p**) + *a*t ^{b}*

where

*t* = |*z*(**p**) – *zbound*|

*a* = `penaltypar(1)`

*b* = `penaltypar(2)`

It should be noted that the penalty is not applied to the objective function directly, but to the calculated system response *z*(**p**). The values of *a* and *b* as well as the target value *z*^{*} need to be selected accordingly.

This option is useful for determining control parameters that lead to an optimized system behavior under constraints.

**Example**

` > OBSERVATION
>> CONCENTRATION
>>> ELEMENT: BH__0
>>>> CONSTRAINT: 0.0 0.01
>>>> PENALTY: 1.0D6 2.0
>>>> ZERO DATA
<<<<
<<<
<<`

**See Also**

` >>>> CONSTRAINT
`