Another possibility is to flesh out the method algorithm in an activity diagram or statechart. I agree that OCL is not appropriate; in fact, the OCL spec for UML 2.0 makes this clear:
"OCL is a pure specification language; therefore, an OCL expression is guaranteed to be without side effect. When an OCL expression is evaluated, it simply returns a value. It cannot change anything in the model. This means that the state of the system will never change because of the evaluation of an OCL expression, even though an OCL expression can be used to specify a state change (e.g., in a post-condition).
OCL is not a programming language; therefore, it is not possible to write program logic or flow control in OCL. You cannot invoke processes or activate non-query operations within OCL. Because OCL is a modeling language in the first place, OCl expressions are not by definition directly executable." Section 7.1, UML 2.0 OCL Specification
OCL would, however, be appropriate for defining method parameter and return constraints, pre and post-conditions, invariants, etc.
FCW