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 PRINT
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