The Error Message Service is an implementation of the error reporting conventions discussed in SUN/104 which is not dependent on any particular software environment and can therefore be used in ‘stand-alone’ programs and for implementing components of software environments. In order to allow its use in environment system software, EMS provides no callable facility for delivering these messages to the user. It just provides facilities for constructing and storing reported error messages. In doing so, it also provides many of the facilities required by MSG and ERR. Indeed, in many cases the MSG and ERR routines are implemented as straight-through calls to EMS routines.
EMS can also be used in the threaded parts of applications and libraries when compiled with POSIX threads support, see Appendix B.
The hierarchical relationship between MSG, ERR and EMS is illustrated in Figure 1.
EMS was originally written in Fortran and a C interface provided but since Version 2.0 it is written in C and a Fortran interface provided. This document concentrates on the Fortran interface. The C interface is described briefly – the way it is used can be inferred from the use of the Fortran interface.