From jls@uxb.liv.ac.uk Thu Jun  3 10:24:31 1993
Received: from mail.liv.ac.uk by dkuug.dk with SMTP id AA27965
  (5.65c8/IDA-1.4.4j for <SC22WG5@dkuug.dk>); Thu, 3 Jun 1993 10:24:31 +0200
Received: from 138.253.31.132 by mailhub.liverpool.ac.uk with SMTP (PP) 
          id <29093-0@mailhub.liverpool.ac.uk>; Thu, 3 Jun 1993 09:24:51 +0100
From: jls <jls@uxb.liv.ac.uk>
Message-Id: <22281.9306030820@uxb.liv.ac.uk>
Subject: Re: (SC22WG5.368) EXTERNAL statements in modules
To: jkr@directory.rl.ac.uk (John Reid)
Date: Thu, 3 Jun 93 9:20:40 BST
Cc: SC22WG5@dkuug.dk (SC22/WG5 members)
In-Reply-To: <9306021821.AA03438@numerical.cc.rl.ac.uk>; from "John Reid" at Jun 2, 93 6:21 pm
X-Mailer: ELM [version 2.3 PL11]
X-Charset: ASCII
X-Char-Esc: 29

John Reid wrote
> 
> I do not think you have quite the right example. It is illegal by 158/33.
> How about:
> 
> MODULE M
>    EXTERNAL F
> END MODULE M
> 
> PROGRAM MAIN
> USE M
>    ...
>    CALL F
>    ...
> END PROGRAM MAIN
> 
> The call statement provides an additional attribute, namely that F is a 
> subroutine, clearly in breach of the intention of 158/33.
> 
> John. 
> 
> 
As far as I can see any invocation of F must specify attributes that are not
specified in the module, which breaks the intent of the standard. I cannot
see a possible way of using EXTERNAL in a module that does not have this
problem. Nor is there any need to do so. The obvious way to declare a 
procedure to be external in a module is to include the interface block.

-- 
Dr.J.L.Schonfelder
Director, Computing Services Dept.
University of Liverpool, UK
Phone: +44(51)794 3716
FAX  : +44(51)794 3759
email: jls@liv.ac.uk   

