READERR should not be used for testing the operation of a READ statement. The READ procedure has its own facilities for checking, making multiple attempts in case of errors, and terminating the program if necessary.
where M is a logical unit designation as before. It yields the value true if the previous write operation produced a parity error; otherwise it yields the value false.
An external declaration is required for each nonstandard library procedure or procedure compiled separately from the calling program, whether in Algol, Fortran or CODAP. Standard Algol procedures are described in Section VI. Note that a CODAP subroutine must take account of the special structure of the Algol calling sequence as described in Appendix C or be treated as a Fortran subprogram. The use of Fortran subprograms is described in Appendix G.
The external declaration has one of the following forms:
external I1, ..., In real external I1, ..., In integer external I1, ..., In Boolean external I1, ..., In
where each Ik is an identifier and n is any positive integer. A type declarator preceding the declarator external signifies a function procedure having that type. Note that no information about parameters appears in an external declaration. See Appendix A for syntactical definition.
In the ALGO mode, LIB cards must be included in the job deck for nonstandard library routines, in addition to the external declarations. Details are found in Section VIII.
Certain procedures are used without being declared. These include the standard functions listed in the Algol 60 report and the input-output and intermediate tape procedures. The complete list is as follows:
ABS SIGN SQRT SIN COS ARCTAN LN EXP ENTIER EOF READERR WRITERR FORTRANF FTNF READ PAGE PRINT WRITE PUNCH INPUT OUTPUT BINREAD BINWRITE ENDFILE REWIND BACKUP FORTRAN FTN
These procedures are global to the program. They behave as though declared in a fictitious block surrounding the entire program.
In a complete compilation the compiler makes two passes on the Algol source program. If errors which the compiler cannot correct are detected in the first pass, then the second, or translation, pass will not be made. The following types of errors are detected: