There are a number of run-time checks associated with the calling of routines. A subroutine or function compiled with a checking option will produce a run-time error if one of the following occurs:
Arrays used as actual arguments are too small for the declared size.
An actual argument which is a constant or a local variable that is in use as a DO-variable is altered by the called routine. For example:
CALL
FRED(1.0)
. . .
DO I=1,100
CALL FRED(I)
. . .
ENDDO
. . .
END
SUBROUTINE FRED(N)
. . .
N = G
. . .
END
Either of the calls to FRED in the above example would cause a run-time error.
A simple character argument is not large enough for its declared size.
In the absence of checking, these conditions result in program corruption with unpredictable results.