> I think you've got this backwards. The interface block merely serves to
> precisely specify the characteristics of the dummy procedure B, much in
> the same way you would declare a dummy argument to be an integer, for
> example. Arguments are checked when the code which *calls* A is
> compiled, not when A itself is compiled. I'm assuming here that A is a
> module procedure, and that the actual procedure corresponding to B has
> an explicit interface (e.g., itself a module procedure). Whether or not
> the user procedure B is written when A is compiled is irrelevent. The
> procedure A must necessarily define the interface to B (it's calling it
> after all); all the user is free to do is to implement a "B" with a
> conformable interface.
True. What I meant was, if B has already been compiled when A is
compiled, then there can be some automatic checking. I'm thinking of B
as a module procedure, with an automatic explicit interface. One CAN
write the interface by hand, which might be better than nothing (i.e.
better than the EXTERNAL routine approach) but then one has to make sure
that B, when it is written, corresponds to the interface.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|