ROLBLM   

Equivalent PK functions: PK_MARK_goto

ROLBLM ( ifail )
================

  Rolls back changes since the last roll-mark

Returns:
  KI_cod_error             *ifail          --- error code

Specific errors:
  KI_no_rollmark            no previous roll-mark exists
  KI_roll_is_off            logging for roll-back is disabled

Description:
  Restores tag memory, modelling parameters, interface parameters, and
  the bulletin board to the state they were in immediately after the
  most recent call to ROLSMK or ROLBFN.

  Note that the ROLBLM call may affect validity of tags; tags referring to
  entities created since the last roll-mark will cease to be valid, whilst
  those referring to entities deleted will become valid. The modeller will
  always trap invalid tags, giving error KI_not_a_tag. Note, however, that
  entities restored by a get-snapshot operation may have the same tags as
  entities which existed prior to the GETSNP call.

  ROLBLM cannot be used to roll back from one roll-mark to the previous one;
  this can only be done by use of ROLBFN. If ROLBLM is called repeatedly,
  only the first call will have any affect.

  It is not possible to roll forward to the state of the model immediately
  prior to the ROLBLM call; if you want the option of rolling forward,
  you should instead call ROLSMK to set a mark, and then ROLBFN to roll back
  to the previous mark.

  If the call to ROLBLM follows a roll-back by use of ROLBFN, you will then
  have the option of doing a roll-forward to undo the effect of the earlier
  ROLBFN call. This feature allows you to test two alternative modelling
  operations as follows:

      Set a roll-mark, then try the first operation.

      Set a roll-mark, roll back using ROLBFN, then try the second operation.

      Decide which operation to keep.

      If you want the second operation, simply set a further roll-mark
      which will invalidate the roll-mark representing the first operation.

      If you want the first operation, call ROLBLM to undo the second
      operation, then call ROLBFN to roll forward to the result of the
      first operation.