This chapter tells you how to customize message-handling using the message-handling subroutines, EKKMSAV, EKKMSET, and EKKMSTR.
The message-handling subroutines allow you to save, restore, and change message settings. Using EKKMSAV, you can save an existing message setting for future use. This message setting can later be restored using EKKMSTR. With EKKMSET, you can affect:
Three code fragments are provided to show you how EKKMSAV, EKKMSET, and EKKMSTR may be used to change these message attributes.
If you want to restrict the log information issued during the matrix factorization to 15 messages while EKKSSLV is running, you can save the option settings associated with message EKK0057I, set it so that this message will appear only 15 times, and restore the original settings with the following code fragment:
REAL*8 DSPACE(50000) INTEGER*4 RTCOD,MESGSAV(2) . . . C Save the message settings associated with message EKK0057I. CALL EKKMSAV(RTCOD,DSPACE,57,MESGSAV) C Set the message setting to new options. CALL EKKMSET(RTCOD,DSPACE,57,0,15,0,0,0,0) . . . CALL EKKSSLV(RTCOD,DSPACE, 1, 2) . . . C Restore the original message settings for EKK0057I. CALL EKKMSTR(RTCOD,DSPACE,57,MESGSAV) . . .
You can suppress output of the EKKnnnnx message numbers normally generated by library output modules. To do this, first use EKKIGET and EKKISET to reset integer control variable Imsgpos to 1. This moves the EKKnnnnx message numbers to the right side of the output line, so blanks will not appear before the messages. Then call EKKMSET with the nonum argument having a value of 1, to turn off the message numbers, as follows:
REAL*8 DSPACE(5000) INTEGER*4 RTCOD INCLUDE (OSLI) . . . C Move EKKnnnnx message numbers to the right of the output. CALL EKKIGET(RTCOD,DSPACE,OSLI,OSLILN) IMSGPOS = 1 CALL EKKISET(RTCOD,DSPACE,OSLI,OSLILN) C C Turn off all EKKnnnnx message numbers. C CALL EKKMSET(RTCOD,DSPACE,1,0,0,0,0,9999,1) . . .
If you want to suppress all output from library modules (not just the EKKnnnnx message numbers), the following call to EKKMSET will achieve the desired result:
CALL EKKMSET(RTCOD,DSPACE,1,0,-1,0,0,9999,0)
[ Top of Page | Previous Page | Next Page | Table of Contents ]