Print

Print


> In section 5.1, it says:
> 
>    Constraint: If the TARGET attribute is specified, the POINTER,
>    EXTERNAL, INTRINSIC, or PARAMETER attribute shall not be
>    specified.
> 
> What was the rationale for disallowing the combination of PARAMETER
> and TARGET?  

I think there is a good reason (not like with the F77 constraint of no 
PARAMETER arrays, which I think was due to the fact that PARAMETER got 
in rather late in the game): a TARGET has to be an address in memory.  
With PARAMETERs, they might be stored in normal memory, or in read-only 
memory, or whatever, but I think that they don't have to actually be 
stored in memory at all.  Thus, TARGET wouldn't make much sense: what 
does it point to?

> I wanted to use it for switching between some large
> precomputed tables, but the compiler wouldn't let me and has the
> standard to back it up ...

I don't really see the advantage here.  Presumably, your precomputed 
tables are PARAMETER arrays.  Just put them all in one big table with an 
extra dimension, and switch between them by deciding what the index of 
that extra dimension will be.  This might even be better than the 
POINTER approach.



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%