F Portability

 F.1 Overview
 F.2 Coding and porting prerequisites
 F.3 Operating system specific routines

F.1 Overview

This section discusses the portability of MSG and ERR, including the coding standard adopted for MSG and ERR and a list of those Starlink packages which need to be ported to the target machine before a port of MSG or ERR can proceed.

F.2 Coding and porting prerequisites

The standard of Fortran used for the coding of MSG and ERR is fundamentally Fortran 77, using the Starlink Fortran coding conventions described in SGP/16. Several common extensions to the Fortran 77 standard are used in source code for MSG and ERR, they are as follows:

To use MSG and ERR on any computer system, the Starlink Error Message Service, EMS (see SSN/4) and Character Handling Routines, CHR (see SUN/40) must be available.

F.3 Operating system specific routines

The following routines have system-specific features and may produce differing results on different platforms. System-specific code (apart from minor format differences on WRITE statements) is all in the equivalent EMS routines.

ERR_FACER
Assign a Starlink facility error message to a token.

Calls its EMS counterpart which is system-specific – for more details see SSN/4.

ERR_FIOER
Assign a Fortran I/O error message to a token.

Calls its EMS counterpart which will generally need to be rewritten for each new target platform. Current versions have the appropriate messages hardwired into the code. For more details see SSN/4.

ERR_SYSER
Assign an operating system error message to a token.

Calls its EMS counterpart which is platform specific. For more details see SSN/4.

ERR_FMTx
Assign a value to a message token (formatted).

These routines call their EMS counterpart and behave differently on different systems in the event of an error. Sometimes the errors are reported by Fortran and can be trapped but sometimes they are not. If they are reported, the token remains unset but if they are not reported, the character string generated can differ.