[MPI3 Fortran] Summary of items on the table

Craig Rasmussen crasmussen at lanl.gov
Mon Apr 28 17:04:19 CDT 2008


On Apr 28, 2008, at 2:20 PM, Aleksandar Donev wrote:

> On Monday 28 April 2008 12:49, Lionel, Steve wrote:
>
>> My personal preference is for choice 4, the IGNORE attribute (the
>> specific spelling can be debated...
>> There seems to be strong sentiment with some
>> against such a thing, which I don't fully understand.
> Steve, I will throw this one back at you. I asked earlier, but  
> never got a
> response:
>
> What happens if the dummy (with the IGNORE attribute) is declared as
> INTEGER(4), and things are performed inside that the standard  
> defines only
> for 4-byte integers (e.g., some bit packing operation). Then, the  
> routine is
> called with a REAL(8) array? What if the array is of a derived type  
> of size 1
> byte?
>
> What specifically will Intel Fortran do? Compile and give results  
> that make no
> sense? If so, the standard must have *specific* restrictions on  
> what the
> actual is allowed to be, and what it means. Only illegal cases can  
> be left
> without a meaning.
>
> What does Cray do?
>
> If the routine is written in C and has a void* argument, I  
> understand how it
> works. But I do not understand how it works if "everything is  
> written in
> Fortran".

I don't understand either.  I assume I must declare a TKR for the  
dummy and then tell the compiler to ignore what I have just  
declared?  What can I do in the Fortran procedure?  I can't think of  
anything very useful.  I can't define it can I.  I think we still  
require LANG=C.

Perhaps I could use IGNORE(R) if the dummy were declared as a rank 1  
array.  However, I believe I can get the same thing with a assumed  
size, rank 1 dummy.  At least the compiler I tried allowed me to call  
with a rank 2 actual.

Craig





More information about the mpiwg-fortran mailing list