# .Nonvar

## Definition

The

`.Nonvar`

suffix controls whether individual variables are frozen or not. This suffix can take on three values:

`0`

This variable is not frozen and a value for the variable should be found in the next solve statement.

`1`

This variable is frozen and it will retain its value during the SOLVE statement. The corresponding column will be removed from the generated mathematical program for the sake of efficiency.

`-1`

This variable is frozen and it will retain its value during the SOLVE statement. The corresponding column will

notbe removed from the generated mathematical program but can be manipulated during subsequent calls of the GMP function library.

## Datatype

The value of the

`.Nonvar`

suffix is an integer in the range \(\{ -1, 0, 1 \}\) and the default is 0.

## Dimension

The

`.Nonvar`

suffix has the same dimension and domain as that of the constraint or variable at hand.

Note

When the

`.lower`

suffix of a variable is equal to the`.upper`

suffix of the same variable that variable is treated as a frozen variable and subsequently removed from the generated mathematical program independently from the setting of the`.Nonvar`

suffix.See also Variable Declaration and Attributes of the Language Reference.

The option

`Bound_tolerance`

can affect variables that are frozen using the`.Nonvar`

suffix, using a value of 1, but only if the level value of the variable is outside its bounds. If the bound violation is greater than the bound tolerance then the level value will be rounded to the nearest bound, and otherwise not.The

`.Nonvar`

suffix should not be confused with the GAMS suffix`.fx`

. This latter suffix is a shorthand for the GAMS suffixes`.l`

,`.lo`

and`.up`

.