Silverfrost Logo About Us | Contact Us
 

Linker diagnostics

During the linking of a program, the relocatable binary code that has been output by the compiler is linked with routines from the Fortran 95 library and from other relocatable binary files and libraries specified by the user. There are a number of error and warning messages that can be output by the linker, most of which are self-explanatory.

A commonly occurring message is one that reports that a routine is missing. A name can appear as "missing" for either of the following reasons:

  1. A routine of the specified name is not available to the linker because:

  • an appropriate LIBRARY directive has not appeared in the source program or

  • the name of a library routine has been misspelt. A commonly occurring error is the use of the letter O instead of the digit 0 in calls to library routines, for example, the use of MO1ANF instead of M01ANF.

  1. The name was intended to be an array element name but has not been dimensioned. It has then been used only in a function reference, a CALL statement or on the right hand side of an assignment statement, for example:

B = A(3)
CALL SUB(A(I),X)
C = F(A(I+J))

Fortran is defined in such a way that each of the above would generate a reference to a function called A. The name A would be out put by the loader as "missing".

Note:

If the "missing" name corresponded to a routine in a library compiled in CHECK mode, a run-time error might occur saying that the routine had been called inconsistently. In the worst case, an appropriate routine with consistent arguments would be loaded and the program would run with unpredictable results!

Programs with missing routines can be executed up to the point at which a missing routine is called.

 

 

Copyright © 1999-2017 Silverfrost Limited