EMS_ELOAD returns error message pending in the current error context, one by one in a series of calls; it has the calling sequence:
On the first call of this routine, the error table for the current context is copied into a holding area, the current error context is annulled and the first message in the holding area is returned. Thereafter, each time the routine is called, the next message from the holding area is returned. The argument PARAM is the returned message name and PARLEN the length of the message name in PARAM. OPSTR is the returned error message text and OPLEN is the length of the error message in OPSTR.CALL EMS_ELOAD( PARAM, PARLEN, OPSTR, OPLEN, STATUS )
The status associated with the returned message is returned in STATUS until there are no more messages to return - then STATUS is set to SAI__OK, PARAM and OPSTR are set to blanks and PARLEN and OPLEN to 1. If there are no messages pending on the first call, a warning message is returned with STATUS set to EMS__NOMSG.
After STATUS has been returned SAI__OK, the whole process is repeated for subsequent calls. This process is the same as for ERR_LOAD which just calls EMS_ELOAD.
EMS_EXPND has the calling sequence:
TEXT is the message text, OPSTR is the returned message text, OPLEN is the length of the message in OPSTR and STATUS is the inherited status.CALL EMS_EXPND( TEXT, OPSTR, OPLEN, STATUS )
The behaviour of EMS_EXPND is to expand any message tokens in the message text and return the expanded message through the character variable OPSTR.
For both EMS_EXPND and EMS_ELOAD, if the message text is longer than the declared length of OPSTR then the message is truncated with an ellipsis, i.e. ``...'', but no error results.
The symbolic constants EMS__SZPAR and EMS__SZMSG are provided for declaring the lengths of character variables which are to receive message names and error messages in this way. These constants are defined in the include file EMS_PAR.
EMS Error Message Service