.Nonvar
Definition
The
.Nonvarsuffix controls whether individual variables are frozen or not. This suffix can take on three values:
0This variable is not frozen and a value for the variable should be found in the next solve statement.
1This 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.
-1This 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
.Nonvarsuffix is an integer in the range \(\{ -1, 0, 1 \}\) and the default is 0.
Dimension
The
.Nonvarsuffix has the same dimension and domain as that of the constraint or variable at hand.
Note
When the
.lowersuffix of a variable is equal to the.uppersuffix 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.Nonvarsuffix.See also Variable Declaration and Attributes of the Language Reference.
The option
Bound_tolerancecan affect variables that are frozen using the.Nonvarsuffix, 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
.Nonvarsuffix should not be confused with the GAMS suffix.fx. This latter suffix is a shorthand for the GAMS suffixes.l,.loand.up.