-@code{COMPUTE} creates a variable with the name specified (if
-necessary), then evaluates the given expression for every case and
-assigns the result to the variable. @xref{Expressions}.
-
-Numeric variables created or computed by @code{COMPUTE} are assigned an
-output width of 8 characters with two decimal places (@code{F8.2}).
-String variables created or computed by @code{COMPUTE} have the same
-width as the existing variable or constant.
+@cmd{COMPUTE} assigns the value of an expression to a target
+variable. For each case, the expression is evaluated and its value
+assigned to the target variable. Numeric and short and long string
+variables may be assigned. When a string expression's width differs
+from the target variable's width, the string result of the expression
+is truncated or padded with spaces on the right as necessary. The
+expression and variable types must match.
+
+For numeric variables only, the target variable need not already
+exist. Numeric variables created by @cmd{COMPUTE} are assigned an
+@code{F8.2} output format. String variables must be declared before
+they can be used as targets for @cmd{COMPUTE}.
+
+The target variable may be specified as an element of a vector
+(@pxref{VECTOR}). In this case, a vector index expression must be
+specified in parentheses following the vector name. The index
+expression must evaluate to a numeric value that, after rounding down
+to the nearest integer, is a valid index for the named vector.
+
+Using @cmd{COMPUTE} to assign to a variable specified on @cmd{LEAVE}
+(@pxref{LEAVE}) resets the variable's left state. Therefore,
+@code{LEAVE} should be specified following @cmd{COMPUTE}, not before.