<br><font size=2 face="sans-serif">Is the following declaration legal?</font>
<br>
<br>
<br><font size=2 face="sans-serif">function externFn ()</font>
<br><font size=2 face="sans-serif"> interface</font>
<br><font size=2 face="sans-serif"> integer
function proc ()</font>
<br><font size=2 face="sans-serif"> end function</font>
<br><font size=2 face="sans-serif"> end interface</font>
<br>
<br><font size=2 face="sans-serif"> procedure(proc), pointer
:: externFn</font>
<br><font size=2 face="sans-serif"> integer i</font>
<br>
<br><font size=2 face="sans-serif"> read *, i</font>
<br><font size=2 face="sans-serif"> externFn => f</font>
<br>
<br><font size=2 face="sans-serif"> contains</font>
<br>
<br><font size=2 face="sans-serif"> integer function f ()</font>
<br><font size=2 face="sans-serif"> f = i</font>
<br><font size=2 face="sans-serif"> end function</font>
<br><font size=2 face="sans-serif">end function</font>
<br>
<br>
<br><font size=2 face="sans-serif">If it is legal, how would the value
of i be defined. Consider the following user code</font>
<br>
<br><font size=2 face="sans-serif">procedure(proc), pointer :: func</font>
<br>
<br><font size=2 face="sans-serif">func => externFn()</font>
<br>
<br><font size=2 face="sans-serif">print *, func() !<-- what
would this function return</font>
<br>
<br>
<br><font size=2 face="sans-serif">If the declaration is illegal, can anyone
point out where the standard states so.</font>
<br>
<br><font size=2 face="sans-serif">Thanks</font>
<br>
<br>
<br><font size=2 face="sans-serif">Jim Xia<br>
<br>
RL Fortran Compiler Test<br>
IBM Toronto Lab at 8200 Warden Ave, Markham, On, L6G 1C7<br>
Phone (905) 413-3444 Tie-line 313-3444<br>
email: jimxia@ca.ibm.com<br>
D2/YF7/8200 /MKM</font>