.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 not be 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.