The OPTMODEL Procedure
Functional Summary
The statements and options available with PROC OPTMODEL are summarized by purpose in Table 3.
Table 3: PROC OPTMODEL Functional Summary
| Description | Statement | Option |
|---|---|---|
| Declaration Statements | ||
| Declares a constraint | CONSTRAINT | |
| Declares optimization expressions | IMPVAR | |
| Declares a maximization objective | MAX | |
| Declares a minimization objective | MIN | |
| Declares a number type parameter | NUMBER | |
| Declares a problem | PROBLEM | |
| Declares a set type parameter | SET | |
| Declares a string type parameter | STRING | |
| Declares optimization variables | VAR | |
| Programming Statements | ||
| Assigns a value to a variable or parameter | = | |
| Invokes a library subroutine | CALL | |
| Closes the opened file | CLOSEFILE | |
| Executes the statement repeatedly with support for concurrent solver invocations | COFOR | |
| Terminates one iteration of a loop statement | CONTINUE | |
| Creates a new SAS data set and copies data into it from PROC OPTMODEL parameters and variables | CREATE DATA | |
| Groups a sequence of statements together as a single statement | DO | |
| Executes statements repeatedly | DO (iterative) | |
| Executes statements repeatedly until some condition is satisfied | DO UNTIL | |
| Executes statements repeatedly as long as some condition is satisfied | DO WHILE | |
| Ignores the specified constraint | DROP | |
| Marks the end of a DO statement list | END | |
| Marks the end of a SOURCE block | ENDSOURCE | |
| Marks the end of a SUBMIT block | ENDSUBMIT | |
| Prints the specified constraint, variable, or objective declaration expressions after expanding aggregation operators, and so on | EXPAND | |
| Selects a file for the PUT statement | FILE | |
| Treats a variable as fixed in value | FIX | |
| Executes the statement repeatedly | FOR | |
| Executes the statement conditionally | IF | |
| Terminates the execution of the entire loop body | LEAVE | |
| Null statement | ; | |
| Outputs string and numeric data | ||
| Provides timing and execution count information for statements and declarations | PROFILE | |
| Writes text data to the current output file | PUT | |
| Terminates the PROC OPTMODEL session | QUIT | |
| Reads data from a SAS data set into PROC OPTMODEL parameters and variables | READ DATA | |
| Sets PROC OPTMODEL option values or restores them to their defaults | RESET OPTIONS | |
| Adds a constraint that was previously dropped back into the model | RESTORE | |
| Saves the structure and coefficients for a linear programming model into a SAS data set | SAVE MPS | |
| Saves the structure and coefficients for a quadratic programming model into a SAS data set | SAVE QPS | |
| Invokes a PROC OPTMODEL solver | SOLVE | |
| Assigns a source text block to a string parameter | SOURCE | |
| Halts the execution of all statements that contain it | STOP | |
| Submits SAS code for execution | SUBMIT | |
| Reverses the effect of FIX statement | UNFIX | |
| Selects the current problem | USE PROBLEM | |
| PROC OPTMODEL Options | ||
| Specifies the accuracy for nonlinear constraints | PROC OPTMODEL | CDIGITS= |
| Specifies the maximum number of error messages displayed | PROC OPTMODEL | ERRORLIMIT= |
| Specifies the method used to approximate numeric derivatives | PROC OPTMODEL | FD= |
| Specifies the accuracy for the objective function | PROC OPTMODEL | FDIGITS= |
| Forces finite differences to be used for nonlinear expressions | PROC OPTMODEL | FORCEFD= |
| Enables the OPTMODEL presolver for the CLP, conic, LP, MILP, and QP solvers | PROC OPTMODEL | FORCEPRESOLVE= |
| Passes initial values for variables to the solver | PROC OPTMODEL | INITVAR= |
| Specifies the tolerance for rounding the bounds on integer and binary variables | PROC OPTMODEL | INTFUZZ= |
| Specifies the maximum length for MPS row and column labels | PROC OPTMODEL | MAXLABLEN= |
| Checks missing values | PROC OPTMODEL | MISSCHECK= |
| Specifies the maximum number of non-error messages displayed | PROC OPTMODEL | MSGLIMIT= |
| Specifies the number for threads to use for threaded processing | PROC OPTMODEL | NTHREADS= |
| Specifies the number of digits to display | PROC OPTMODEL | PDIGITS= |
| Adjusts how two-dimensional array is displayed | PROC OPTMODEL | PMATRIX= |
| Specifies the type of presolve performed by the PROC OPTMODEL presolver | PROC OPTMODEL | PRESOLVER= |
| Specifies the tolerance, enabling the PROC OPTMODEL presolver to remove slightly infeasible constraints | PROC OPTMODEL | PRESTOL= |
| Enables or disables printing summary | PROC OPTMODEL | PRINTLEVEL= |
| Specifies the width to display numeric columns | PROC OPTMODEL | PWIDTH= |
| Specifies the CAS session name | PROC OPTMODEL | SESSREF= |
| Specifies the CAS session UUID | PROC OPTMODEL | SESSUUID= |
| Specifies the smallest difference that is permitted by the PROC OPTMODEL presolver between the upper and lower bounds of an unfixed variable | PROC OPTMODEL | VARFUZZ= |
Last updated: June 22, 2026