Next: Arguments of External Procedures
Up: External Procedures
Previous: Procedure Execution
The rules of Fortran allow functions to have side-effects, that is to
alter their actual arguments or to change other variables within
common blocks. Functions with side-effects cannot be used in
expressions where any of the other operands of the expression
would be affected, nor can they be used in subscript or substring
references when any other expression used in the same references
would be affected. This rule ensures that the value of an
expression cannot depend arbitrarily on the way in which the
computer chooses to evaluate it.
There are also restrictions on functions which make use of
input/output statements even on internal files: these cannot be used
in expressions in other I/O statements. This is to avoid the I/O
system being used recursively.
By far the best course is to use the subroutine form for any
procedure with side-effects.